foo
特定の入力値のセットについては正常に完了して結果を返すことが期待され、他の値のセットについては特定の例外をスローすることが期待されるという名前のメソッドがあるとします。この方法をテストするには、いくつかの設定が必要です。
これらの条件を考えると、1 つのテストで成功と失敗のテストをクラブ化する方がよいでしょうか?それとも、これらのケースを別々のテスト方法で維持する必要がありますか?
言い換えれば、次の2つのアプローチのどちらが望ましいでしょうか?
アプローチ 1:
@Test
public void testFoo() {
setUpThings();
// testing success case
assertEquals(foo(s), y);
// testing failure case
try {
foo(f);
fail("Expected an exception.")
} catch (FooException ex) {
}
}
アプローチ 2:
@Test
public void testFooSuccess() {
setUpThings();
assertEquals(foo(s), y);
}
@Test
public void testFooFailure() {
setUpThings();
try {
foo(f);
fail("Expected an exception.")
} catch (FooException ex) {
}
}