1

テストが Eclipse で TestCase(Junit) を拡張するときに、@Test アノテーションを使用してテストを実行できない

TestCase(jUnit) から拡張していない場合は正常に動作しますが、既存のコードは TestCase から拡張されているため、そのままにしておきたいと思います。

4

3 に答える 3

4

拡張するテストjunit.framework。TestCase は、JUnit4 ランナーによって JUnit3 スタイルのテストと見なされます。正解です。

@Test アノテーションには、拡張する必要はありませんjunit.framework。TestCase と @Test アノテーションは正常に動作します

于 2012-10-25T07:01:07.390 に答える
4

JUnit3 ランナーを使用していないことを確認してください。

テスト用に「実行構成」を開き、TestタブJUnit 4でテストランナーが選択されていることを確認します。

私見ですが、JUnit4 用にテスト スイートを改良する場合は、JUnit3 のサポートを中止してください。

ところで、「JUnit 4」ランナーに切り替えても、古い JUnit3 クラスは引き続き実行されます (それらに @Test アノテーションを追加する必要はありません)。

于 2009-11-02T14:39:44.307 に答える
2

拡張するjunit.framework.TestCaseテストは、JUnit4 ランナーによって JUnit3 スタイルのテストと見なされます。詳細については、ソース コードを参照AllDefaultPossibilitiesBuilderしてください。

クラスにアノテーションを付けることで、拡張するクラスをTestCaseJUnit4 スタイルのテストとして処理するように JUnit4 に強制することはでき@RunWith(JUnit4.class)ますが、ほとんどの場合、これを行いたくありません。これを行うと、テスト クラスは引き続きすべてのメソッドを継承しますがjunit.framework.TestCase、それらのメソッドは呼び出されません。言い換えれば、あなたは多くのクラフトを受け継ぐことになります。

継承は、多くの場合、テストであってもコードを共有するための不適切な方法です。共有コードを別のクラスに配置して、テスト クラスから直接デリゲートできる場合は、そうしてください。

JUnit 4.7 以降を使用する場合、ルールはコードを共有する別の方法を提供します。ルールは、テストの動作によって影響を受けるか、影響を受ける可能性があります。

非常にまれなケースですが、複数の JUnit4 テスト クラスで必要な共有コードを Runner で共有できますが、テスト クラスは 1 つのランナーしか指定できないため、ランナーには基本クラスと同じ欠点が数多くあります。

于 2010-07-19T04:07:36.883 に答える