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

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

        @InjectMocks
        private CandidateMenuController candidateMenuController = new CandidateMenuController();


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

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

最佳答案

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

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

// Test Code
}

10-07 22:54