Как написать модульный тест на Java для загрузки файла

#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);

}