Я делаю модульные тесты для метода, который выполняет некоторую обработку исключений.вот упрощенный класс, который я хотел бы проверить:
class Foo{
private BarService bar;
public int MethodToTest(){
try{
bar.methodThatThrows();
return 1;
}catch(Exception e){
return 0;
}
}
}
И это класс модульного тестирования.
class FooTest{
private IBarService barService = mock(BarService.class);
@Test
TestMethodToTest(){
when(barService.methodThatThrows()).thenThrow(new Exception("message");
Foo foo = new foo();
ReflectionTestUtils.setField(foo, "barService", barService);
assertEquals(foo.MethodToTest(), 0);
}
}
Каким-то образом, когда я его запускаю, он терпит неудачу, потому что естьвыдается ошибка (как и ожидалось), в которой содержится точно такое же сообщение, что и сообщение, которое я помещаю в проверяемый сервис.Когда я запускаю в режиме отладки, блок catch даже не запускается.Как это может быть возможно?