我试图模拟一种静态 void 方法,我尝试了 PowerMock 但总是得到 NullPointer 异常。
我们正在尝试模拟以下调用 -
public Class XYZ{
public void method1(){
....
SampleClass.methodTypeStatic1().methodTypeStatic2("xyz", "mno", classVeriable);
}
主要课程是 -
public class SampleClass implements SampleClassParent{
private static SampleClass var1;
public static SampleClass methodTypeStatic1(){
if (var1 == null) {
//Do something on var1
}
return var1;
}
public void methodTypeStatic2(String localVar1, String localVar2, DifferentStaticClass localVar3) {
//Do something
}}
我试图在我的测试课中以这种方式模拟通话 -
@RunWith(PowerMockRunner.class)
@PrepareForTest({SampleClass.class})
public class XYZTest{
@InjectMocks
XYZ xyzTestService;
@Test
public void testMethod1(){
...
PowerMockito.mockStatic(SampleClass.class);
PowerMockito.doNothing().when(SampleClass.methodTypeStatic1());
xyzTestService.method1();
}
还要提到的是,SampleClass.class 不是我们代码的一部分,我们已将此外部类导入我们的代码库以执行某些任务。