如何使用 PowerMockito 模拟静态方法中的新类实例



我有一个带有静态方法的类,在静态方法中,我创建了一个不同类的实例并将其保存在map中。我需要为此方法编写单元测试。最好的方法是什么?

例如:

public class MyClass {
public static synchronized void method (String str1, String str2, Object obj){
   do something.....
        DifferentClass dc =  new DifferentClass(str1,str2,obj);
        dc.methodCall();
   do something.....
}
}

尝试用:

DifferentClass  dc = PowerMockito.mock(DifferentClass.class);
        PowerMockito.whenNew(DifferentClass.class).withArguments(str1,str2,obj).thenReturn(dc);

我收到空指针异常dc.methodCall();

谢谢

确保您有@PrepareForTest中的MyClass。另外,我建议使用withParameterTypes。这不是强制性的,但它有助于避免一些错误。

模拟可能不起作用。在withArguments()方法调用中使用Powermockito.anyString()或类似的东西(我不确定正确的版本)。不要这样使用字符串。

相关内容

  • 没有找到相关文章

最新更新