2

我想在一种方法上使用模拟 eventService,而在另一种真实的 eventService 中。

   @Mock(name = "eventService")
        private EventService eventService;

        @InjectMocks
        private CandidateMenuController candidateMenuController = new CandidateMenuController();

如何在方法中编写模拟此代码。我有CandidateMenuController candidateMenuController作为类字段。但在一种方法中,我想使用特定的 eventService 实现。

PS没有构造函数并设置get方法EventService

4

2 回答 2

1

由于您没有任何setter方法来设置 的值EventService,因此您可以使用反射来设置 的值EventService

@Test
public void testWithRealization() {
Field field = candidateMenuController.getClass().getDeclaredField("eventService");
field.set(candidateMenuController, new EventServiceImpl());

// Test Code
}
于 2013-10-09T12:12:29.290 回答
1

@MockitoJunitRunner要使用模拟的类和方法中删除MockitoAnnotations.initMocks(this); 在要使用特定实现的方法中,EventService您必须通过调用构造函数手动创建它。

于 2013-10-09T11:49:32.717 回答