テストが Eclipse で TestCase(Junit) を拡張するときに、@Test アノテーションを使用してテストを実行できない
TestCase(jUnit) から拡張していない場合は正常に動作しますが、既存のコードは TestCase から拡張されているため、そのままにしておきたいと思います。
拡張するテストjunit.framework
。TestCase は、JUnit4 ランナーによって JUnit3 スタイルのテストと見なされます。正解です。
@Test アノテーションには、拡張する必要はありませんjunit.framework
。TestCase と @Test アノテーションは正常に動作します
JUnit3 ランナーを使用していないことを確認してください。
テスト用に「実行構成」を開き、Test
タブJUnit 4
でテストランナーが選択されていることを確認します。
私見ですが、JUnit4 用にテスト スイートを改良する場合は、JUnit3 のサポートを中止してください。
ところで、「JUnit 4」ランナーに切り替えても、古い JUnit3 クラスは引き続き実行されます (それらに @Test アノテーションを追加する必要はありません)。
拡張するjunit.framework.TestCase
テストは、JUnit4 ランナーによって JUnit3 スタイルのテストと見なされます。詳細については、ソース コードを参照AllDefaultPossibilitiesBuilder
してください。
クラスにアノテーションを付けることで、拡張するクラスをTestCase
JUnit4 スタイルのテストとして処理するように JUnit4 に強制することはでき@RunWith(JUnit4.class)
ますが、ほとんどの場合、これを行いたくありません。これを行うと、テスト クラスは引き続きすべてのメソッドを継承しますがjunit.framework.TestCase
、それらのメソッドは呼び出されません。言い換えれば、あなたは多くのクラフトを受け継ぐことになります。
継承は、多くの場合、テストであってもコードを共有するための不適切な方法です。共有コードを別のクラスに配置して、テスト クラスから直接デリゲートできる場合は、そうしてください。
JUnit 4.7 以降を使用する場合、ルールはコードを共有する別の方法を提供します。ルールは、テストの動作によって影響を受けるか、影響を受ける可能性があります。
非常にまれなケースですが、複数の JUnit4 テスト クラスで必要な共有コードを Runner で共有できますが、テスト クラスは 1 つのランナーしか指定できないため、ランナーには基本クラスと同じ欠点が数多くあります。