我想在一种方法中使用模拟 eventService,而在另一种方法中使用真实的 eventService。
@Mock(name = "eventService")
private EventService eventService;
@InjectMocks
private CandidateMenuController candidateMenuController = new CandidateMenuController();
如何在方法内编写模拟此代码。
我有 CandidateMenuController CandidateMenuController
作为类字段。但在一种方法中,我想使用特定的 eventService 实现。
P.S 我没有构造函数并为EventService
设置get方法
最佳答案
由于您没有任何 setter
方法来设置 EventService
的值,因此可以使用反射来设置 EventService
的值:
@Test
public void testWithRealization() {
Field field = candidateMenuController.getClass().getDeclaredField("eventService");
field.set(candidateMenuController, new EventServiceImpl());
// Test Code
}
关于java - @InjectMocks 注释。 java代码模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19271107/