要测试的类:IndexController.java
代码:
@Mock
private TemplateWrapper templateWrapper = spy(new TemplateWrapper());
@InjectMocks
private IndexController controller;
verify(templateWrapper).process();
报错:
Wanted but not invoked:
templateWrapper.process();
-> at com.suning.ebuy.cms.web.controller.IndexControllerTest.testIndexSuccess(IndexControllerTest.java:199)
Actually, there were zero interactions with this mock.
错误原因:没有把templateWrapper注入到IndexController.java类中.
解决方法:
1.把templateWrapper注入到IndexController.java类中
controller.setMyObj(templateWrapper); //it is good to have in @before method
2.或者创建templateWrapper的实例类,再执行verify(templateWrapper).process();
templateWrapper = new TemplateWrapper();
verify(templateWrapper).process();
本文介绍了解决在单元测试IndexController.java类时遇到的问题:未能正确验证templateWrapper.process()调用的原因及解决方法。主要通过两种方式实现:一是将templateWrapper注入到被测类;二是直接创建templateWrapper实例并验证其过程。
1481

被折叠的 条评论
为什么被折叠?



