我想执行单元测试以检查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);

    }

最佳答案

您只能在模拟对象上使用doThrow()方法。
您应该这样更改代码:

@Test
public void loadPropertiesFileTestTrue(){
     Utility util=Mockito.mock(Utility.class);

     doThrow(FileNotFoundException.class)
            .when(util)
            .loadPropertiesFile(null);

}

10-04 11:21