【问题标题】:Reset EmbeddedKafka After Every Test Method每次测试方法后重置 EmbeddedKafka
【发布时间】:2019-10-21 18:48:45
【问题描述】:

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

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

有没有办法解决这个问题?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 此解决方案大大减慢了测试速度。没有重新创建上下文的任何替代方案?
    猜你喜欢
    • 2021-09-27
    • 2014-05-04
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    相关资源
    最近更新 更多