程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了测试spring应用程序上下文无法启动的最佳方法是什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决测试spring应用程序上下文无法启动的最佳方法是什么??

开发过程中遇到测试spring应用程序上下文无法启动的最佳方法是什么?的问题如何解决?下面主要结合日常开发的经验,给出你关于测试spring应用程序上下文无法启动的最佳方法是什么?的解决方法建议,希望对你解决测试spring应用程序上下文无法启动的最佳方法是什么?有所启发或帮助;

为什么要开始进行集成测试?为什么要为此启动功能完善的Spring Boot应用程序?

在我看来,这就像单元测试。话虽如此,您有几种选择:

  • 不要添加@IntegrationTest,Spring Boot不会以启动网络服务器作为开始(用于@PropertySource将值传递给测试,但是将无效值传递给整个测试类感觉很错误)@H_301_10@
  • 您可以使用spring.main.web-environment=false禁用Web服务器(但是以上几点很愚蠢)@H_301_10@
  • 编写一个处理DummyPropertIEs您的单元测试的单元测试。您甚至不需要为此启动Spring Boot应用程序。看看我们自己的测试套件 @H_301_10@

我肯定会选择最后一个。也许您有充分的理由为此进行集成测试?

解决方法

我使用spring-boot-starter-web和spring-boot-starter-test。

假设我有一个用于绑定配置属性的类:

@ConfigurationProperties(prefix = "dummy")
public class DummyProperties {

    @URL
    private String url;

    // getter,setter ...

}

现在,我要测试我的bean验证是否正确。如果dummy.value未设置该属性或该属性包含无效的URL
,则上下文应无法启动(带有特定的错误消息)。如果属性包含有效的URL,则上下文应开始。(测试将显示@NotNull丢失了。)

测试类如下所示:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyApplication.class)
@IntegrationTest({ "dummy.url=123:456" })
public class InvalidUrlTest {
    // my test code
}

由于提供的属性无效,因此该测试将失败。告诉Spring /
JUnit的最佳方法是:“是的,这是预期的错误”。在普通的JUnit测试中,我将使用ExpectedException。

大佬总结

以上是大佬教程为你收集整理的测试spring应用程序上下文无法启动的最佳方法是什么?全部内容,希望文章能够帮你解决测试spring应用程序上下文无法启动的最佳方法是什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: