我有控制器的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,我无法在这种情况下注入服务模拟。我可以用反射来做,但也许有人知道更优雅的解决方案吗?
答案 0 :(得分:0)
如果您正在使用注释,则必须将@RunWith(MockitoJUnitRunner.class)放在ControllerTest上方或创建如下的setUp方法:
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}
希望得到这个帮助。