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