метод, който хвърля при първо и второ извикване:
public void foo() throws Exception
тест:
@test
public void testFooThrowsAtFirstAndSecondTime(){
boolean thrown;
try {
foo();
} catch (Exception e) {
thrown = true;
}
assertTrue(thrown);
thrown = false;
try {
foo();
} catch (Exception e) {
thrown = true;
}
assertTrue(thrown);
foo();
}
Бихте ли ми помогнали да намеря по-добро решение за това? Използването на Mockito за по-добро решение също би било приемливо.
С по-добро, имам предвид, ако можех да избегна опит/улавяне или дори няколко опита/улов в моя тест. На други езици или в jAssert мисля, че дори през пролетта има твърдения като:
assertThrows(method(..)) //PseudoCode
Мислех, че с Mockito или JUnit 4.x има подобно нещо.
знам за
@Test(expected=Exception)
Но това би било приемливо само ако очаквам едно хвърляне и тестът приключи след това.