#java #unit-testing #junit #mockito
#java #модульное тестирование #junit #mockito
Вопрос:
Я хочу выполнить модульный тест, чтобы проверить загрузку файла на java. Я видел несколько сообщений о Mockitos doThrow, но не совсем понял его реализацию.
Мой метод выглядит примерно так.
public void loadPropertiesFile(String filepath){
logger.info("Loading properties file");
try{
prop.load(new FileInputStream(filepath));
logger.info("Properties file read");
}catch(IOException e){
e.printStackTrace();
logger.info("Properties file read error");
}
}
Я пытался протестировать это следующим образом, но получаю ошибку при неправильном использовании doThrow:
@Test
public void loadPropertiesFileTestTrue(){
Utility util=new Utility();
doThrow(FileNotFoundException.class)
.when(util)
.loadPropertiesFile(null);
}
Ответ №1:
Вы можете использовать doThrow()
метод только для mocked объектов.
Вам следует изменить свой код следующим образом:
@Test
public void loadPropertiesFileTestTrue(){
Utility util=Mockito.mock(Utility.class);
doThrow(FileNotFoundException.class)
.when(util)
.loadPropertiesFile(null);
}