我正在为我的项目创建junit测试用例。我有以下代码,我想创建一个模拟,
String propertyFilePath = System.getProperty("path.to.properties");
Resource propertyFile = new FileSystemResourceLoader().getResource(propertyFilePath);
Properties properties = PropertiesLoaderUtils.loadProperties(propertyFile);
我正在使用junit和mockito-core jar。我试过下面的代码,
System.setProperty("path.to.properties", "dummyPathToProperties"); //invalid Path
Properties properties = mock(Properties.class);
Resource propertyFile = new FileSystemResourceLoader().getResource("dummyPathToProperties");
when(PropertiesLoaderUtils.loadProperties(propertyFile)).thenReturn(properties);
使用上面的代码,它会在模拟loadProperties方法时抛出错误。我如何模拟spring静态类并返回我的mock属性对象?
任何帮助都将非常感激。
答案 0 :(得分:0)
模拟静态方法要求你向下移动整整九码并使用PowerMock。模拟静态方法的确切步骤在其documentation中列出。
本质上:
但当然:考虑不使用PowerMock;通过更改您的代码,以便您不必模拟静态调用。但是,当然,在这样一个框架提供的静态方法周围添加一个包装器有点奇怪。