我想在一个方法上使用mock eventService和另一个真正的eventService。
@Mock(name = "eventService")
private EventService eventService;
@InjectMocks
private CandidateMenuController candidateMenuController = new CandidateMenuController();
如何在方法内部编写此代码。
我有CandidateMenuController candidateMenuController
作为类字段。但是在一种方法中我想使用特定的eventService实现。
P.S 我有不构造函数并为EventService
设置了get方法
答案 0 :(得分:1)
从类和您要使用mock的方法中删除@MockitoJunitRunner
执行MockitoAnnotations.initMocks(this);
在您希望使用EventService
的特定实现的方法中,您必须通过调用构造函数手动创建它。
答案 1 :(得分:1)
由于您没有任何setter
方法来设置EventService
的值,您可以使用反射来设置EventService
的值:
@Test
public void testWithRealization() {
Field field = candidateMenuController.getClass().getDeclaredField("eventService");
field.set(candidateMenuController, new EventServiceImpl());
// Test Code
}