程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在Spring Boot JUnit测试中排除* AutoConfiguration类?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在Spring Boot JUnit测试中排除* AutoConfiguration类??

开发过程中遇到如何在Spring Boot JUnit测试中排除* AutoConfiguration类?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在Spring Boot JUnit测试中排除* AutoConfiguration类?的解决方法建议,希望对你解决如何在Spring Boot JUnit测试中排除* AutoConfiguration类?有所启发或帮助;

最佳答案并不指向更简单,更灵活的解决方案。

@TestPropertysource(propertIEs=
{"spring.autoconfigure.exclude=comma.seperated.Classnames,com.example.FooautoConfiguration"})
@SpringBoottest
public class MySpringTest {...}

测试类上方的注释。这意味着其他测试不受当前测试的特殊情况的影响。如果存在影响大多数测试的配置,请虑使用spring配置文件代替当前的最佳答案。

我有一个类似的用例,我想隔离地测试一个Spring Boot配置的存储库(在我的情况下,没有Spring Security自动配置,这会使我的测试失败)。@SpringApplicationConfiguration用途SpringApplicationContextLoader,并且有一个JavaDoc说明

可用于测试非Web功能(例如存储库层)或启动完全配置的嵌入式Servlet容器。

但是,就像你自己一样,我无法弄清楚如何配置测试以仅使用主要配置入口点(即,使用的方法)来测试存储库层@SpringApplicationConfiguration(classes = Application.class)

我的解决方案是创建一个专用于测试的全新应用程序上下文。所以在src / test / java中,我在名为repo的子包中有两个文件

  1. RepoIntegrationTest.java
  2. TestRepoConfig.java

哪里RepoIntegrationTest.java

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = TestRepoConfig.class)
public class RepoIntegrationTest {

并且TestRepoConfig.java

@SpringBootApplication(exclude = SecurityautoConfiguration.class)
public class TestRepoConfig {

这让我摆脱了麻烦,但是如果Spring Boot团队的任何人都可以提供替代的推荐解决方案,那将非常有用

解决方法

我试过了

@RunWith(SpringJUnit4ClassRunner.class)
@EnableAutoConfiguration(exclude=CrshAutoConfiguration.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
public class LikeControllerTest {

但是,CRaSSHD仍会启动。然目前它不会损害测试,但我想在单元测试期间禁用不必要的模块,以加快速度并避免潜在的冲突。

大佬总结

以上是大佬教程为你收集整理的如何在Spring Boot JUnit测试中排除* AutoConfiguration类?全部内容,希望文章能够帮你解决如何在Spring Boot JUnit测试中排除* AutoConfiguration类?所遇到的程序开发问题。

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

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