每种测试方法后重置EmbeddedKafka

时间:2019-06-06 09:10:55

标签: spring unit-testing spring-boot apache-kafka spring-kafka

我正在编写一个具有多个需要Kafka的方法的测试类。每个代理需要不同的代理属性,因此我希望每个代理都有一个单独的EmbeddedKafka实例。

@EmbeddedKafka(
    partitions = 20,
    topics = {"topic"},
    controlledShutdown = false,
    brokerProperties = {
      "listeners=PLAINTEXT://localhost:9091",
      "port=9091",
      "auto.create.topics.enable=false",
      "delete.topic.enable=true"
    })

为类中的每个方法使用代理属性。我不要这个解决此问题的一种方法是将每个测试方法放在具有不同代理属性的单独类中。但是我不想这样做,因为这样会炸毁我需要的文件数量。

有什么解决办法吗?

1 个答案:

答案 0 :(得分:0)

不要在多个地方提出相同的问题;这是在浪费您和我们的时间。

无论如何,GitHub问题都不是问问题,在问题模板中对此做了解释,您可能没有读过。

在每个测试中最好使用不同的主题。但是,可以将@DirtiesContext添加到每个测试方法,也可以将@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)添加到测试类。