的Mockito。如何在测试类中模拟抽象方法调用?

时间:2014-08-22 09:33:21

标签: java unit-testing mockito

我有控制器的Test类。我需要注入autowired字段。控制器超类的模拟方法(我没有可能重构这种情况)

   public class ControllerTest {

        @Mock
        Service service;


        @InjectMocks
        Controller controller;


    @Test
    public vois test() {
      controller.process();

    }
}

在process()方法中调用服务和超类的方法。

我试图以这种方式在测试中初始化我的控制器

new Controller() {

@Override
superMethod() {
    //do nothing
}
}

但由于缺少setter,我无法在这种情况下注入服务模拟。我可以用反射来做,但也许有人知道更优雅的解决方案吗?

1 个答案:

答案 0 :(得分:0)

如果您正在使用注释,则必须将@RunWith(MockitoJUnitRunner.class)放在ControllerTest上方或创建如下的setUp方法:

@Before
public void setup() {
    MockitoAnnotations.initMocks(this);
}

希望得到这个帮助。