我可以在Spring Boot中模拟Optional <>的bean吗?

来源:爱站网时间:2021-09-16编辑:网友分享
在我的SpringBootApplication中,我有一个Bean,它注入另一个可选的Bean(如下所示)@Service公共类A {// B是依赖项私有中的另一个@Component ...

问题描述


在我的SpringBootApplication中,有一个bean注入了另一个可选bean(如下所示)

@Service
public class A {

    //B is another @Component from one of the dependencies
    private Optional b;
    ...
    ...
}

我正在为class A @MockBean编写集成测试。但是,由于Optional b是最后一堂课,因此Spring Mockito引发以下错误

无法模拟/间谍类java.util.Optional-期末班

有没有解决的办法?非常感谢您的帮助。

思路一:


您可以使用Optional

如果您使用带有注释的嘲笑,那么您将无法使用Optional.of(b),因为您的可选选项不会被嘲弄为已知。您必须自己创建服务@InjectMocks。像这样的东西:

A

思路二:


您实际上应该模拟实际的bean,并使用模拟的bean自动连接@RunWith(MockitoJUnitRunner.class) public class ATest { @Mock private B b; private A a; @Before public void setup() { a = new A(Optional.of(b)); } }

Optional

上一篇:是否有现成的支持将基于OAuth2的Bearer令牌与Apache HttpClient一起使用?]

下一篇:如何将postgresSql查询重写为Spring-data jpa查询

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载