44

私は、合格を拒否しているJUnit 4を使用して、Eclipseで次のテストケースを持っています。何が間違っている可能性がありますか?

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

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

また、運が悪いと予想されるカスタム例外でテストしました。

スクリーンショット: スクリーンショット

4

3 に答える 3

98

問題は、あなたの AnnounceThreadTest が TestCase を拡張することです。これは TestCase を拡張するため、JUnit ランナーはそれを JUnit 3.8 テストとして扱います。また、テストは単語 test で始まるため実行され、@Test アノテーションが実際にはまったく使用されていないという事実を隠します。

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

于 2009-07-20T01:21:32.993 に答える
2

JUnit 4.4を使用してIntelliJでこれを実行しました:

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

完璧に合格します。

プロジェクト全体を再構築して、もう一度やり直してください。あなたが間違っていることは他にもあります。JUnit 4.4 は宣伝どおりに機能しています。

于 2009-07-20T01:26:10.350 に答える