这是我试图模拟的现有类及其方法:
public class ClassUndertest{
private Object field_private = new Object();
public Object method_public()
{
field_private.method();
method_private();
}
private Object method_private()
{
....
return Object;
}
}
我的测试部分嘲笑ClassUndertest:
ClassUndertest partialmockinstance = PowerMock.createPartialMock(ClassUndertest.class, "method_private");
当我运行模拟对象时:
partialmockinstance.method_public();
field_private未初始化,因此test抛出空指针。
无论如何都要绕过这个问题?
答案 0 :(得分:0)
在调用构造函数时初始化字段。我认为PowerMock的默认行为是不调用任何构造函数。
通过查看javadoc,我会尝试以下方法:
ClassUndertest partialmockinstance = PowerMock.createPartialMockAndInvokeDefaultConstructor(ClassUndertest.class, "method_private");