如果未在测试方法中创建“新建”,则PowerMockito

时间:2019-06-25 12:58:38

标签: java unit-testing powermockito

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),则代码覆盖范围无效。

有人可以帮助我了解这个问题吗?或建议一种模拟步骤的方法,并且还应涵盖代码覆盖范围。

0 个答案:

没有答案