gpt4 book ai didi

spring - 使用@WebMvcTest 时如何排除使用 Spring 的 AutoConfiguration 添加的类?

转载 作者:行者123 更新时间:2023-12-04 13:47:58 24 4
gpt4 key购买 nike

我想使用 @WebMvcTest 测试我的 Controller 并模拟依赖项,但 Spring Boot 的 AutoConfiguration 会自动加载我的 Couchbase(Spring Data)配置。 Couchbase 在某些运行测试的平台上不可用,因此 Test 类将抛出异常。如何从 AutoConfiguration 机制中排除某些类?

我试过 excludeFilters @WebMvcTest 的选项和 @ActiveProfile加载另一个应用程序上下文,但这不起作用。

测试配置:

@RunWith(SpringRunner.class)
@WebMvcTest(value = ExchangeJobImportController.class, excludeFilters = @ComponentScan.Filter(classes = CouchbaseConfiguration.class))
@ActiveProfiles("test")
public class ExchangeJobImportControllerTest {
...
}

沙发床配置:
@Configuration
@EnableCouchbaseAuditing
@EnableConfigurationProperties({CouchbaseProperties.class})
@EnableCouchbaseRepositories(basePackages = "com....")
public class CouchbaseConfiguration extends AbstractCouchbaseConfiguration {
...
}

最佳答案

经过一番挣扎后,我找到了解决方案:排除 @SpringBootApplication @WebMvcTest 中的注释类注解:

@RunWith(SpringRunner.class)
@WebMvcTest(value = ExchangeJobImportController.class, excludeAutoConfiguration = Application.class, secure = false)
@ActiveProfiles("localhost")
public class ExchangeJobImportControllerTest {
...
}

为了记录,我使用的是 Spring Boot 1.5.1.RELEASE

关于spring - 使用@WebMvcTest 时如何排除使用 Spring 的 AutoConfiguration 添加的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42433487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com