2016-04-25 7 views
0

私はユニットテストに私のコードをテストするJunitを書いた。自分のコードで例外が発生した場合、Junitのテストケースが失敗するようにしたい。私はassert文を使用しようとしましたが、私のコードで例外が発生しても、私のJunitテストケースは合格です。どのように私はこれを達成することができます誰も教えてください?ありがとう。コードに例外がある場合、Junitテストケースを失敗させるには?

+0

を失敗することはありません

public void test(){ throw new RuntimeException(); } 

方法? –

+4

コードを表示してください。 JUnitは、例外をスローすると自動的にテストに失敗します。 –

答えて

1

をあなたはグローバル変数が= nullかのような「除外」と主張することができますそれをキャッチブロック内の情報列に等しくなるように初期化します。

2

あなたの機能のみをテストすることを強くお勧めします。例外がスローされた場合、テストは自動的に失敗します。例外がスローされない場合、テストはすべて緑色になります。

しかし、あなたはまだ例外の場合に失敗した場合、テストコードを書きたい場合は、ような何か: -

@Test 
public void foo(){ 
    try{ 
     //execute code that you expect not to throw Exceptions. 
    } 
    catch(Exception e){ 
     fail("Should not have thrown any exception"); 
    } 
} 
1

次のテストでは、さらに、コーディングなしで失敗します両方:コード内で例外がスローされたとき

@Test 
public void fail1() { 
    throw new NullPointerException("Will fail"); 
} 

@Test 
public void fail2() throw IOException { 
    throw new IOException("Will fail"); 
} 
4

実際にテストは失敗するはずです。もちろん、この例外をキャッチしてそれを(または他の例外も)投げないと、テストはそれを知ることができません。この場合、メソッドの実行結果を確認する必要があります。 例のテスト:テストに失敗します

@Test 
public void test(){ 
    testClass.test(); 
} 

方法:私はあなたが `fail`を使用推測テスト

public void test(){ 
    try{ 
    throw new RuntimeException(); 
    } catch(Exception e){ 
    //log 
    } 
} 
関連する問題