2017-07-03 44 views
6

我目前正在研究一個項目,我們在微服務體系結構中實施了kafka實施。您是否成功爲mS創建合同測試用例,以便使用pact-jvm?如何在kafka參與微服務架構時實施合同測試?

我的實現是microservice1向REST客戶端發佈消息,然後將消息發佈到Kafka主題。 microservice2使用GET方法從卡夫卡主題中檢索消息。

回答

10

Pact-JVM支持Message Pacts,它封裝了消息(單向)通過某種機制(通常是消息隊列)的消息。這個想法是測試消費者代碼可以通過消費者測試消費消息,然後驗證提供者是否生成適當的消息。測試中不使用實際的消息隊列。

Contract over a message queue

這最初的開發應用測試合同上通信卡夫卡消息隊列微服務。

測試分兩部分完成,就像請求響應協議測試一樣,除了消費者在消費者協議測試期間讀取消息以及寫入協議文件是否成功。然後調用提供者代碼來生成消息,並將其與pact文件中的內容進行比較。

enter image description here

該條約,JVM文檔的相關章節是:

+0

感謝@羅納德 - holshausen你能還指出,消費者JVM部分所在的合約i請生成? –

+0

當然,這是一個JUnit測試的鏈接:https://github.com/DiUS/pact-jvm/blob/master/pact-jvm-consumer-junit/README.md#consumer-test-for-a-消息消費者 –