use*_*296 6 python integration-testing apache-kafka kafka-python
我对集成测试有点陌生。我有两个使用 Kafka 相互传递消息的服务。但是,对于我的集成测试,我不一定想让 Kafka 运行来运行我的测试。有没有标准的方法来模拟 Kafka?或者这是我需要自己创建的东西,一些 MockKafka 队列和应用程序中适当的补丁?此外,这是否违反了集成测试应该做的事情?我对此的看法是,我没有测试 Kafka 的任何功能,为了集成测试,应该模拟出那里。
模拟 Kafka 本身是不可行的,因为它的协议不是通用 RFC 支持的标准(与 HTTP 不同)并且只有一种实现。
在单元测试级别,您可以抽象和模拟需要 Kafka 的功能,但这不是您的情况。您想要集成测试,因此,很可能您必须涉及实际的 Kafka 才能测试实际的交互。
为了以最小的努力涉及真正的 Kafka,我将使用特殊的独立 Docker 映像(如下所示:https: //github.com/up9inc/async-ms-demo/tree/main/kafka)。构建并运行它并暴露 9092 端口。
对于与 Kafka 的集成测试,我的原则是不要模拟 Kafka 本身,而是用我所说的“Mock Actor”来模拟“不需要/不相关”的服务。
这里详细描述了“Mock Actors”方法:https://up9.com/mock-actor-approach-for-kafka(我写的文章)。也有一个工具可以实现这些功能(http://mockintosh.io)。
| 归档时间: |
|
| 查看次数: |
1655 次 |
| 最近记录: |