Whennew()在powermockito中调用不起作用

时间:2014-12-22 12:21:25

标签: java mockito powermock

我在调用构造函数时使用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调用),而不是创建模拟。

出了什么问题?

1 个答案:

答案 0 :(得分:1)

您使用的是错误的跑步者 - 如果您想使用PowerMock,则需要使用PowerMockRunner

@RunWith(PowerMockRunner.class)
@PrepareForTest(ConVibe.class)
public class ConVibeTests {