如何使用PowerMockito模拟PropertyConfigurator.configure()



我正在使用log4j进行日志消息,而log4j属性来自用户。我已经使用PropertyConfigurator.configure(Properties)来配置用户提供的属性。

在编写测试用例时,我正在使用PowerMock模拟PropertyConfigurator并配置方法。configure()方法是一种空隙静态方法。尝试这样做时,我会得到Nullpointer异常。有什么方法?

我尝试过

PowerMockito.mockStatic(PropertyConfigurator.class);
PowerMockito.doNothing().when(PropertyConfigurator.class);
PropertyConfigurator.configure(slf4jPropertiesMock);

这不起作用。

如果可能的话,是否有任何选择在不使用PropertyConfigurator.configure(Properties)的情况下以其他方式获得SEME结果的其他选择?在这种情况下,单元测试将很容易。

确保您在测试类中具有此配置:

@RunWith(PowerMockRunner.class) 
@PrepareForTest(PropertyConfigurator.class)
public class Test{

您的嘲笑应该看起来像这样:

PowerMockito.doNothing().when(PropertyConfigurator.class)
      .configure(Mockito.any(Properties.class);

没有PowerMockito

PropertyConfigurator.configure(Properties)打电话给软件包方法:

public class C{
   ...
   void configure(Properties p){
     PropertyConfigurator.configure(p);
   }

间谍C类并模拟配置方法:

C c = new C();
C sSpy = Mockito.spy(c);
Mockito.doNothing().when(c).configure(Mockito.any(Properties.class);

相关内容

  • 没有找到相关文章

最新更新