我想使用@WebMvcTest
测试我的Controller并模拟依赖项,但Spring Boot的AutoConfiguration会自动加载我的Couchbase(Spring Data)配置。在运行测试的某些平台上没有Couchbase,因此Test类将抛出异常。如何从AutoConfiguration机制中排除某些类?
我尝试了excludeFilters
和@WebMvcTest
的{{1}}选项来加载另一个应用程序上下文,但这不起作用。
测试配置:
@ActiveProfile
Couchbase配置:
@RunWith(SpringRunner.class)
@WebMvcTest(value = ExchangeJobImportController.class, excludeFilters = @ComponentScan.Filter(classes = CouchbaseConfiguration.class))
@ActiveProfiles("test")
public class ExchangeJobImportControllerTest {
...
}
答案 0 :(得分:0)
我知道已经有一段时间了,但是我想@ComponentScan.Filter
解决方案不起作用的原因是,它默认情况下会为classes
字段查找注释类型。
因此,在您的情况下,将FilterType
设置为ASSIGNABLE_TYPE
即可:
@ComponentScan.Filter(
type = FilterType.ASSIGNABLE_TYPE,
classes = CouchbaseConfiguration.class
)