Jak*_*kim 3 spring-test spring-boot spring-kafka
我正在使用 spring kafka 来消费来自 kafka 主题的消息,所以我有一个 kafka 消费者配置类:
@Configuration
class KafkaConfiguration {
// kafka consumer configurations
}
Run Code Online (Sandbox Code Playgroud)
我有一些 JUnit 测试,它们将使用 mockMvc 加载 spring 上下文来测试我的 API,我不想测试与 kafka 消息传递相关的功能,如何阻止 kafka 仅在 JUnit 测试中消费消息?它一直失败,因为我的本地和 CI 环境中没有 kafka 服务器。
Spring 配置文件不是一个很好的选择,因为我必须编写如下代码:
@Configuration
@Profile("!unit-test")
class KafkaConfiguration {
//kafka configuration
}
Run Code Online (Sandbox Code Playgroud)
我最终会得到仅用于测试目的而编写的生产代码,不是很干净,还有其他方法可以禁用 kafka 进行测试吗?
小智 9
添加@ConditionalOnProperty在配置类上
例子:
@ConditionalOnProperty(value = "kafka.enable", havingValue = "true", matchIfMissing = true)
Run Code Online (Sandbox Code Playgroud)
,并添加application.properties文件属性kafka.enable=false
| 归档时间: |
|
| 查看次数: |
10453 次 |
| 最近记录: |