2015-03-31 3 views

ответ

3

Оставляя в стороне, как вы проверили отладочный вызов, вы обычно запускаете исключение, предоставляя подходящие входы, чтобы исключение было создано/выбрано. Если это не подходит, альтернативой является предоставление заменяющего (издевавшегося) компонента, который был сконфигурирован/написан для выброса исключения, например.

public MyClass(MyInjectedComponent component) { 
    this.component = component; 
} 

и вы бы предоставить для тестирования реализацию MyInjectedComponent, что будет бросать исключение (для целей тестирования). Подход к инъекциям компонентов в другие компоненты называется dependency injection и стоит исследовать.

Обычно я использую фальшивую основу для этого (например, Mockito или тому подобное). Однако тривиальная реализация вышеуказанного может быть:

public class MyImplementationForTesting extends MyInjectedComponent { 
    public void method() throws Exception { 
     throw new Exception(); 
    } 
} 
+0

У меня есть тест, который генерирует исключение, и я могу успешно его утвердить. Но что, если мне нужно утверждать, что вызывается оператор журнала? – sotn

+0

Я бы издевался над каротажным компонентом и вводил его –

Смежные вопросы