我已经更新了一个项目的库,特别是我已经将 Spring Boot 从版本 2.2.6 更新到了 2.3.2。
如迁移文档中所述,这也意味着我的 Kafka 依赖项发生了变化,升级到 Spring Kafka 和 Kafka 2.5
但是,由于这种变化,我的一些测试“随机”失败,例如,当我执行所有测试时,我在其中一些测试中遇到了这种失败(但并不总是在相同的测试中):
java.lang.IllegalStateException: More than one record for topic found
来自这个特定的行:
KafkaTestUtils.getSingleRecord(consumer, topicConfiguration.getTopic(event))
文档中没有提及为什么会发生这种情况,也没有其他日志错误消息可以说明为什么会发生这种情况。由于我没有改变我的应用程序的逻辑,我是否在迁移过程中遗漏了一些东西?
如果我尝试这样的事情:
KafkaTestUtils.getRecords(consumer)
.records(topicConfiguration.getTopic(event)).map { it }[0]
为了只得到第一个,以前工作的测试会IndexOutOfBoundsException
因索引而失败。