模拟接口方法中的java空指针异常
我使用TestNG进行测试,使用JMockit模拟mockMethod()。以下是测试用例:
@Test
public void testClass1() {
new MockUp<MyInterface>() {
@Mock
public int myMethod(final MyObject someObject ){
return 0;
}
};
MyObject obj = new MyObject();
Assert.assertEquals(obj.mockMethod(someObject),0);
}
}
我为assertEquals()调用的mockMethod()如下所示:
public class Class1 {
MyInterface my;
public int mockMethod(final MyObject someObject ){
...... //processing steps
return my.myMethod(someObject);
}
}
测试用例抛出空指针异常。我做错了什么?我是否模拟mockMethod()的实现?我也试过了,但没用
# 1 楼答案
JMockit创建了
MyInterface
的模拟实例,但您的测试从未使用过它。它可以通过MockUp#getInstance()
方法获得。当然,测试还需要将实例传递给被测试的类