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

如何检查@KafkaListener是否在联调中被调用?

燕俊明
2023-03-14

我想为整个Kafka流编写一个集成测试。

在我的生产代码中,我有:

@KafkaListener(topics = "myTopic")
public void listen(@Payload String payload) {
    log.debug("processing payload: '{}' ", payload);
    // business logic here
}

在我的测试代码中,我使用KafkaProducer

我希望有一个钩子,表明调用了KafkaListener。我可以在测试中加入一些延迟,但这是一个糟糕的做法,我想避免它。

有没有更好的方法来等待正在处理的@KafkaListener

共有1个答案

周朗
2023-03-14

如果您的侦听器调用某个服务,您可以为该服务注入一个模拟并验证它是否被调用。

此外,您可以在测试用例中封装侦听器,并添加倒计时闩锁。

有关示例,请参阅此答案。

 类似资料:
  • 我正在尝试使用SpringKafka将kafka与我的SpringBoot(v2.0.6版本)应用程序集成。现在我想要一个消费者和一个生产者。我让制作人工作得很好,我可以看到通过控制台消费者发送到主题的消息。我无法使用消费者代码,当Kafka主题中出现新消息时,它不会被调用。 这是我的Kafka配置类: 以下是我的pom依赖项: 以及消费者代码: 我正在我的计算机上运行kafka,正如我所说的——

  • 问题内容: 如何检查a 是否被选中? 问题答案: 使用isSelected方法。 您还可以使用ItemListener,以便在选中或取消选中它时收到通知。

  • 假设我们有一个函数和另一个函数 我们希望编写一个Unit测试,检查是否调用了的次数和正确的参数。 那里有 但这只是指最后一次通话。所以假设调用,然后,调用的断言是。 此外,还有 这将生成一个包含正确参数的对象列表。将这个列表与我们在单元测试中创建的对象进行比较,感觉是一件非常讨厌的事情<代码>调用似乎是模拟库的一个内部类。 有更好的方法吗?我使用这个设置来测试函数的并行执行。

  • 假设我有一个类和一个方法: 是否有一种方法可以编写一个在类路径上的任何类中调用该方法时都会失败的测试?我的意思是,不是在运行时调用方法时,而是在代码中声明方法时。 例如,该代码在类路径上的任何类中的precense都应该使测试失败: 我想要实现的目标:我想注释一些不应该在某个项目中调用的方法,但需要放在那里以便在另一个项目中使用,然后编写一个测试,确保注释的方法不会在任何地方被调用。

  • 我知道如果你想检查是否有人点击了什么,你会这样做 但是我想检查屏幕是否根本没有被点击。为了做到这一点,我会产生什么代码? 此外,作为附带说明,让Android应用程序中的所有类扩展类是个好主意吗?

  • 我正在测试路由器,有两个函数,我需要测试第一个函数是否被调用,第二个函数是否被调用。有方法