我在调用构造函数时使用Mockito和PowerMockito来实例化模拟:
@RunWith(MockitoJUnitRunner.class)
@PrepareForTest(ConVibe.class)
public class ConVibeTests {
ConVibe task;
@Mock ShapeEffect shapeEffect;
@Test
public void verify_shape_effect() {
whenNew(ShapeEffect.class).withAnyArguments().thenReturn(shapeEffect);
task.call();
// Omitted
}
// Omitted
}
这是对我想要模拟的构造函数的调用,它位于类conVibe中的函数call()内:
final ShapeEffect effect = new ShapeEffect(mode, new RepService());
事实是,真正的构造函数被调用(存在明显失败的DB调用),而不是创建模拟。
出了什么问题?
答案 0 :(得分:1)
您使用的是错误的跑步者 - 如果您想使用PowerMock,则需要使用PowerMockRunner
:
@RunWith(PowerMockRunner.class)
@PrepareForTest(ConVibe.class)
public class ConVibeTests {