【发布时间】:2020-02-25 18:43:03
【问题描述】:
在我的SpringBootApplication 中,我有一个bean,它注入了另一个可选的bean(如下所示)
@Service
public class A {
//B is another @Component from one of the dependencies
private Optional<B> b;
...
...
}
我正在为 class A 编写集成测试,我需要 @MockBean Optional<B> b。然而,由于Optional 是最后一个类,spring mockito 会引发以下错误
不能模拟/监视类 java.util.Optional - 最后一课
有没有办法解决这个问题?非常感谢任何帮助。
【问题讨论】:
-
我真的很好奇为什么将
Optional与组件放在一起。因为 Spring 总是会实例化B组件,所以 Optional 在这里没有意义,因为 Optional 的想法是处理可能的Null或Empty值,在这种情况下它永远不会为空。跨度> -
据我了解,它是@Autowired(required = false)的替代品
-
我理解你的观点。虽然,只要我们可以,我们应该让 spring 处理它。
标签: java spring spring-boot mockito springmockito