0

テスト フィクスチャの一部は、テスト中にエラーが記録されなかったことを確認します。

@After
public void testname() {
    if(accumulatedErrors()) {
        fail("Errors were recorded during test");
    }
}

ただし、次のように、失敗することが予想されるテストの場合:

@Test(expected = IllegalStateException.class)
public void shouldExplode() throws Exception {
    doExplodingStuff();
}

@After メソッドはチェックを反転する必要があります。

@After
public void testname() {
    if (failureIsExpected()) {
        assertTrue("No errors were recorded during test", accumulatedErrors());
    } else {
        assertFalse("Errors were recorded during test", accumulatedErrors());
    }
}

expected実行したテストのパラメータをメソッドから調べる方法はあり@Afterますか?

もちろん、テストで指定することもできますexpectToFail=trueが、その重複は避けたいと思います。

4

2 に答える 2

2

各テストメソッドにassertTrueorを追加できないのはなぜですか? assertFalseあなたの解決策は私には複雑すぎるようです。@Afterリソースを解放するには、 で注釈が付けられたメソッドを使用する必要があります。

于 2013-11-08T09:52:04.717 に答える
0

catch-exceptionを使用すると、メソッドの外側ではなくメソッドの内側に例外のチェックを移動できます。

@Test
public void shouldExplode() throws Exception {
    catchException(this).doExplodingStuff();
    assertTrue(caughtException() instanceof IllegalStateException);
}
于 2013-11-08T09:52:34.407 に答える