在探索如何对Kafka流进行单元测试时,我遇到了ProcessorTopologyTestDriver
,不幸的是,这个类似乎被版本0.10.1.0
(KAFKA-4408)破坏了
对于KTable的问题,是否有一个解决方案?
我看到了“mocked streams”项目,但首先它使用的是0.10.2.0
,而我使用的是0.10.1.1
,其次它是Scala,而我的测试是Java/Groovy。
这里的任何关于如何在不需要引导zookeeper/kafka的情况下对流进行单元测试的帮助都将非常棒。
注意:我确实有使用嵌入式服务器的集成测试,这是用于单元测试的,也就是快速、简单的测试。
编辑
谢谢拉蒙·加西亚
对于在Google搜索中到达这里的人,请注意测试驱动程序类现在是org.apache.kafka.streams.topologyTestDriver
该类位于maven包groupId org.apache.kafka,artifactId kafka-streams-test-utils中
我找到了一个解决这个问题的方法,我不确定它是否是答案,特别是在https://stackoverflow.com/users/4953079/matthias-j-sax注释之后。无论如何,分享我目前所拥有的...
我完全从0.10.1分支(这是我使用的版本)复制了ProcessorTopologyTestDriver
。
为了解决KAFKA-4408,我使私有最终模拟消费者
可访问,并将块task=new StreamTask(...
移到一个单独的方法,例如bootstrap
。
在测试的设置阶段,我执行以下操作
driver = new ProcessorTopologyTestDriver(config, builder)
ArrayList partitionInfos = new ArrayList();
partitionInfos.add(new PartitionInfo('my_ktable', 1, (Node) null, (Node[]) null, (Node[]) null));
driver.restoreStateConsumer.updatePartitions('my_ktable', partitionInfos);
driver.restoreStateConsumer.updateEndOffsets(Collections.singletonMap(new TopicPartition('my_ktable', 1), Long.valueOf(0L)));
driver.bootstrap()
就这样...
奖金
我还遇到了KAFKA-4461,幸运的是,由于我复制了整个类,所以我能够通过一些小的调整来“挑选”已被接受的修复。
一如既往地感谢反馈。虽然显然不是一个正式的测试类,但这个驱动程序被证明是超级有用的!
我正在尝试(单元)测试使用Kafka DSL的Spring Cloud Stream Kafka处理器,但收到以下错误“无法建立到节点1的连接。代理可能不可用。”。此外,测试不会停止。我尝试了EmbeddedKafka和TestBinder,但我有同样的行为。我试图从Spring Cloud团队(有效)给出的响应开始,我将应用程序改编为使用Kafka DSL,并将测试类保持原样。EmbeddedK
<代码>list.stream()。 列表中的每个项目都将从数据库中删除。 假设列表中有3个项目,如何进行单元测试: 删除被调用了3次。 删除被称为“按顺序/顺序”,即列表中的元素顺序?
问题内容: 如何在单元测试中测试 hashCode()函数? 问题答案: 每当我覆盖equals和hash代码时,我都会按照Joshua Bloch在“ Effective Java”第3章中的建议编写单元测试。我确保equals和hash代码是自反的,对称的和可传递的。我还确保“不等于”对所有数据成员均正常工作。 当我检查对equals的调用时,我还要确保hashCode的行为符合预期。像这样:
一段时间以来,我一直试图让Spring Cloud Stream与Kafka Streams一起使用,我的项目使用嵌入式kafka进行Kafka DSL测试,我使用这个存储库作为我的测试实现的基础(它本身就是这个问题的测试用例)。 我在这里制作了一个存储库来演示这一点。 基本上,当使用“Processor.class”的“DemoApplicationTest.ExampleAppWorking.
问题内容: 我一直在学习AngularJS,并且在单元测试方面进展非常顺利,但是我遇到了一个棘手的问题。 假设我有一个简单的表格,例如: 如果我正在测试类似控制器的东西,我知道我会这样写(使用Jasmine + Karma): 但是我不知道我需要注入哪些服务,也没有运气在指南或文档中找到有关单元测试的文档。 一个单元如何在Angular中测试表单? 问题答案: 我不认为这是对此类内容进行单元测试的
本文向大家介绍对Angular.js Controller如何进行单元测试,包括了对Angular.js Controller如何进行单元测试的使用技巧和注意事项,需要的朋友参考一下 一、写个简单的Angular App 在开始写测试之前,我们先写一个简单的计算App,它会计算两个数字之和。 代码如下: 二、简单说说里面涉及的一些基本概念: 创建一个 module 什么是angular.modul