我有 SomeService,它使用 EJB TimerService 的 @Resource 注释。
@资源 私有(private)定时器服务timerService;
如何在 SomeService 中注入(inject)一个模拟 TimerService 来代替这个 TimerService?
最佳答案
如果您使用的是 mockito:Mockito 可以为您注入(inject)带注释的字段: @RunWith(MockitoJUnitRunner.class) vs MockitoAnnotations.initMocks(this)
我建议不要在字段上使用注解,而是使用带注解的构造函数。这样您就可以使所有注入(inject)的字段成为最终字段,并且当依赖项更改而不是运行时/测试失败/异常时,您将获得构建失败。额外的好处是您可以在测试中调用构造函数并以这种方式注入(inject)模拟。
关于java - 如何注入(inject)或替换@Resource 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39386504/