PowerMockito.whenNew不适用于我要测试的方法。
我要测试的方法是创建一个新的对象。我无法嘲笑这一步。我尝试执行PowerMockito.WhenNew()
步骤,但无法正常工作。
我要测试的课程:
public class A()
{
public static void setValue()
{
B b = new B();
b.getRecord().getValue("Name");
}
}
测试方法:
public void testSetValue(){
B bMock = PowerMockito.mock(B.class);
Record recordMock = PowerMockito.mock(Record.class);
PowerMockito.whenNew(B.class).withNoArguments().thenReturn(bMock);
PowerMockito.when(bMock).getRecord().thenReturn(recordMock);
PowerMockito.when(recordMock).getValue(Mockito.anyString()).thenReturn("Test");
A.setValue();
}
运行测试方法时,新行B();没有创建模拟对象。
我想模拟B类的新对象创建。
如果我@PrepareForTest(A.class)
,则代码覆盖范围无效。
有人可以帮助我了解这个问题吗?或建议一种模拟步骤的方法,并且还应涵盖代码覆盖范围。