web-dev-qa-db-ja.com

JUnitの期待されるタグが期待どおりに機能しない

Eclipseには、合格を拒否しているJUnit4を使用した次のテストケースがあります。 何が問題なのですか?

@Test(expected = IllegalArgumentException.class)
public void testIAE() {
    throw new IllegalArgumentException();
}

この正確なテストケースは、期待されるタグを使用して自分のコードをテストしようとしても機能しなかったときに発生しました。 JUnitが最も基本的なテストに合格するかどうかを確認したかったのです。そうではありませんでした。

また、運が悪ければ、予想どおりカスタム例外を使用してテストしました。

スクリーンショット:Screenshot

35
Ben S

問題は、AnnounceThreadTestがTestCaseを拡張することです。 TestCaseを拡張するため、JUnitRunnerはそれをJUnit3.8テストとして扱い、Wordテストで始まるためテストが実行され、@ Testアノテーションが実際にはまったく使用されていないという事実を隠します。

これを修正するには、クラス定義から「extendsTestCase」を削除します。

81
Yishai

Extends TestCaseを削除する代わりに、これを追加して、アノテーションをサポートするJunit4でテストケースを実行できます。

@RunWith(JUnit4.class)

3
HsYoo

JUnit4.4を使用してIntelliJでこれを実行しただけです。

   @Test(expected = IllegalArgumentException.class)
   public void testExpected()
   {
       throw new IllegalArgumentException();
   }

完全に合格します。

プロジェクト全体を再構築して、再試行してください。あなたが間違っていることは他にあります。 JUnit4.4は宣伝どおりに機能しています。

2
duffymo