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

时间:2016-03-15 18:22:21

标签: java unit-testing static mockito powermockito

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

例如:

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

由于

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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