如何模拟正在内联初始化的字段变量?
class Test {
private Person person = new Person();
...
public void testMethod() {
person.someMethod();
...
}
}
在这里,我想模拟 person.someMethod()
同时测试 Test.testMethod()
方法,我需要模拟 person
变量的初始化。有什么线索吗?
编辑: 我不允许修改 Person 类。
原文由 Arun 发布,翻译遵循 CC BY-SA 4.0 许可协议
我已经找到了我忘记在这里发布的这个问题的解决方案。
该解决方案的关键点是:
使用 PowerMockRunner 运行我的测试用例:
@RunWith(PowerMockRunner.class)
指示 Powermock 准备
Test.class
用于操作私有字段:@PrepareForTest({ Test.class })
最后模拟 Person 类的构造函数:
PowerMockito.mockStatic(Person.class);
PowerMockito.whenNew(Person.class).withNoArguments().thenReturn(person);