0

我有一个为 Kafka 主题生成事件的应用程序代码。所以现在我需要为它编写集成测试。在互联网上搜索后,我对集成测试的定义感到困惑,我应该使用spring-kafka-test库提供的嵌入式 Kafka 服务器还是应该使用我要使用的实际 Kafka 集群来测试我的代码?

这里的集成测试是什么?有人请帮助消除我的困惑。

我的测试是:首先为某个主题生成一条记录,然后无论它是否实际生成都使用它。

4

1 回答 1

0

每个项目可能有不同的需求,这就是为什么每个开发人员可能认为某事足够或不够。

更完整(但更昂贵)的测试套件将:

  1. 隔离生产者测试
  2. 使用嵌入式 kafka 测试生产者
  3. 使用带有测试配置的 kafka 实例测试生产者(一个节点,本地)
  4. 在暂存环境中使用带有生产配置的 kafka 测试生产者(多节点,在实际服务器中但“测试环境”,作为 CI/CD 管道)
  5. 在实际生产中测试生产者对生产服务器进行压力测试,并确保产品性能良好(想想四面军

这其中的价值取决于您:

  • 我会做 1 因为TDD
  • 3 也很便宜,使 2 变得多余,让您放心,实际的“集成”正在发挥作用,我总是做 3。
  • 4 对于生产中的任何产品都是必要且常见的,它在 3 之上是自动化的。
  • 5 仅由少数公司实现,在您的实际生产环境中“攻击自己”实际上要花费大量资金,以确保一切正常。

每个测试层都与您赋予它的重要性一样重要,并且可能看起来像“覆盖”,因为某些错误仅发生在下一层。

于 2020-02-23T08:57:34.987 回答