当前位置: 首页 > 知识库问答 >
问题:

Python:如何模拟单元测试的Kafka主题?

许明朗
2023-03-14

我们有一个消息调度程序,它在将消息属性放入带有密钥的Kafka主题队列之前,从消息属性生成一个散列密钥。

这样做是为了消除重复。但是,我不确定如果不实际设置本地集群并检查它的运行是否符合预期,如何能够测试重复数据删除。

共有1个答案

慕河
2023-03-14

如果您需要验证特定于Kafka的特性,或者使用特定于Kafka的特性实现,那么唯一的方法就是使用Kafka!

Kafaka的重复数据删除逻辑是否有测试?如果是这样,以下因素的组合可能足以减轻组织所感知的失败风险:

  • 哈希逻辑的单元测试(确保同一个对象确实生成了相同的哈希)
  • Kafka主题重复数据删除测试(Kafka项目内部)
  • 飞行前烟雾测试,以验证应用程序与Kafka的集成
    null

我认为重要的是确保Kafka集成测试最小化到只包含绝对依赖Kafka特定功能的测试。即使使用docker-compose,它们也可能比单元测试慢几个数量级,~1ms vs 1秒?要考虑的另一件事是维护集成管道的开销可能值得冒险相信Kakfa会提供它声称的主题重复数据删除。

 类似资料:
  • 澄清一下:我选择使用主题的一个实际的嵌入式实例,以便用一个实际的实例进行测试,而不是在mockito中嘲弄hand off。这样我就可以测试我的自定义编码器和解码器是否能够正常工作,并且当我使用一个真实的kafka实例时不会失败。

  • 问题内容: 我刚开始使用Node,现在正在编写一些单元测试。对于前几个函数,我可以正常运行,但是现在我碰到了一个包含其中的函数。我的函数的简化版本如下所示: 我尝试使用基本节点断言测试库进行测试: 由于执行此操作的时间(以及结果)总是不同的,因此它将始终失败。 在Python中,我可以设置模拟类和对象。有没有一种方法可以在Node中解决此问题而无需将moment.utc()作为函数的参数? 问题答

  • 我有一个调用流api的异步函数。为这个函数编写单元测试的最佳方法是什么?必须模拟api响应。 我尝试使用aiounittest,并使用unittest的mock。但是这调用了实际的api,而不是得到模拟的响应。也尝试pytest.mark.asyncio注释,但这一直给我的错误-协程从未等待。我已经验证pyest-asyncio已经安装。 我正在使用VS代码和Python 3.6.6 以下是相关的

  • 所以我有三个类:A、B、C。我需要为类编写单元测试。 因此,C是一种重要的资源(如JDBC或ssh会话)。当然,我在嘲笑C。如何模拟B。想象一下,B有许多扩展它的子类。 我的主要问题是A正在调用super。(...) 。我不想仅仅为了测试而将方法注入到A中。对我来说,这是个糟糕的设计。有没有办法嘲笑父母? 例如,我不能执行类MockB扩展B{…} 然后尝试

  • 问题内容: 是否有标准方法(无需安装第三方库)在Python中进行跨平台文件系统模拟?如果我必须使用第三方库,那么哪个库是标准库? 问题答案: pyfakefs(主页)做您想要的–一个 伪造的 文件系统;它是第三方,尽管该第三方是Google。有关使用的讨论,请参见如何为被测模块替换文件访问引用。 对于 嘲笑 ,unittest.mock是用于Python 3.3+(标准库PEP 0417); 有

  • 我面临一个问题,而嘲笑jUnit测试的东西。 情况如下: 类A实现了来自第三方jar的接口,并且需要实现method1。除了method1之外,A还包含method2,它是从method1调用的。method2本身调用一些外部服务。 我想单元测试方法1。 方法1接受输入,比如X。X有一个包裹在里面的输入变量,比如var1。var1由方法1中的逻辑使用,方法1在X中设置另一个变量,比如var2。 所