小编jan*_*anb的帖子

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

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

我尝试了andexcludeFilters的选项@WebMvcTest@ActiveProfile,但这不起作用。

测试配置:

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

沙发底座配置:

@Configuration
@EnableCouchbaseAuditing
@EnableConfigurationProperties({CouchbaseProperties.class})
@EnableCouchbaseRepositories(basePackages = "com....")
public class CouchbaseConfiguration extends AbstractCouchbaseConfiguration {
  ...
}
Run Code Online (Sandbox Code Playgroud)

spring unit-testing spring-mvc spring-boot spring-data-couchbase

5
推荐指数
1
解决办法
5027
查看次数