簡體   English   中英

如何使用 Spring Kafka 清除測試中的主題

[英]How to clear topics in tests with Spring Kafka

我正在用 Spring Kafka 2.4 編寫單元測試,以證明我的 Spring Boot 設置是正確的。 我正在驗證SeekToCurrentBatchErrorHandler按預期工作,這需要發送應重試的錯誤消息。 不幸的是,這條不正確的消息會破壞其他測試,因為這條消息將永遠重試。

由於上述原因,我想確保每個測試都正確隔離。 我要么需要:

  1. 使用AdminClient刪除並重新創建 Kafka 主題

  2. 尋找到現有 Kafka 主題的末尾並提交新的偏移量

我正在嘗試使用Consumer.seekToEnd()方法的選項 2,但是 Spring Kafka 將創建的消費者隱藏在幾層內部框架類之后。 我也不是 100% 確定是否可以在與偵聽器線程不同的測試線程中調用此方法。

使用 Spring Kafka 在測試中清除主題的推薦方法是什么?

最佳實踐是在每個測試中使用唯一的主題名稱以提供完全隔離; 您還可以停止容器,創建一個具有相同group.id的新消費者並在group.id執行搜索。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM