1

我有一个使用 Spring Boot 框架构建的 Spring Rest 应用程序。现在在编写 Spring 集成测试时,我想排除一个类,使其不被扫描组件。我的这个类包含 Apache Kafka 的依赖项。如果此类在容器启动时加载,它将开始寻找 Kafka 运行实例。

所以在运行集成测试时我不会启动我的 Kafka 服务器,所以我想运行集成测试使 Kafka 关闭。

任何帮助表示赞赏。

4

2 回答 2

1

您可以从测试配置中排除 cafka 配置。你还没有分享你的代码,但它会是这样的

@SpringBootApplication(exclude = CafkaConfiguration.class)
public class IntegrationTestConfig { 
}

另一方面,您可以肯定地嘲笑卡夫卡

如何为 junit 测试实例化 Mock Kafka 主题?

于 2017-02-15T07:52:52.257 回答
0

最简单的方法是使用配置文件。在您只想对集成测试可见的 bean 中添加:

@Profile("integration=test")

在集成测试的顶部,激活配置文件:

@ActiveProfile("integration-test")

任何未指定配置文件的 bean(所有其他 bean)都将出现在测试和默认配置文件中。如果没有给出,默认是配置文件的名称。

于 2017-02-15T07:51:42.977 回答