java - @InjectMocks 注释。 java代码模拟

标签 java testing spring-mvc junit mockito

我想在一种方法中使用模拟 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/

相关文章:

java - 如果无法验证,如何检查测试用例

testing - 我们可以在 Protractor 中使用注释来执行端到端测试吗?

java - Spring MVC模型对象相关的一些疑惑

java - 从 ServletOutputStream 输出 GIF

java - REGEX - 允许多个空格,并且连字符 (-) 前后不能有空格

java - 链接列表中的比较器

reactjs - Jest 模拟模块解析变量值

java - 如何解决Spring Security无需登录即可访问url的问题

java - Java 的 Thread.sleep 在这里有什么用处?

java - Swing 的 Clojure 库 : externalized/runtime editable definition?