Junit 私有字段
Junit private fields
这是一个现有的 class 及其我试图模拟的方法:
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 未初始化,因此测试抛出空指针。
有没有办法规避这个问题?
调用构造函数时会初始化字段。我认为 PowerMock 的默认行为是不调用任何构造函数。
通过查看 javadoc,我会尝试以下方法:
ClassUndertest partialmockinstance = PowerMock.createPartialMockAndInvokeDefaultConstructor(ClassUndertest.class, "method_private");
这是一个现有的 class 及其我试图模拟的方法:
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 未初始化,因此测试抛出空指针。
有没有办法规避这个问题?
调用构造函数时会初始化字段。我认为 PowerMock 的默认行为是不调用任何构造函数。
通过查看 javadoc,我会尝试以下方法:
ClassUndertest partialmockinstance = PowerMock.createPartialMockAndInvokeDefaultConstructor(ClassUndertest.class, "method_private");