在每个测试方法后重置 EmbeddedKafka

Reset EmbeddedKafka After Every Test Method

我正在编写一个测试 class,它有多个需要 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"
    })

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

有什么办法解决这个问题吗?

最好在每个测试中使用不同的主题。但是,您可以在每个测试方法中添加 @DirtiesContext 或在测试 class.

中添加 @DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)