2017-09-16 40 views
0

@marcin我們是否需要存根等微服務於春雲合同

我關於執行微服務春雲合同有大約50多個服務互相交談,做一個試點。我有幾個問題,我沒有在你的文檔中找到答案。

我正在建設的服務具有控制器,它將處理並將我的輸入負載轉換爲json格式的所需輸出。這個json被用來構建所需的結構,以匹配groovy中的響應(我們的合同)。但是,控制器正在將json發送到具有某個URL的其他服務,如下所示。

request_url=http://localhost:8090/services/rest/transact/v2/pay/validate/0000118228/new response_body=null

基本上它是通過使用此JSON的期待響應從其他服務回來,現在response_body=null

我的問題是我需要創建一個存根或嘲笑的服務?將此響應用作輸入以產生響應的預期輸出。基本上微服務期待ServiceResponse

另一個問題是我們需要在進行合同測試時加載內存數據還是需要測試控制器本身?

回答

1

我並不真正遵循你的描述......「我正在建立的服務具有控制器,它將我從groovy發送的輸入有效負載轉換爲JSON格式並提供所需的輸出。從哪個groovy發送? Groovy應用程序?你能更深入地解釋一下嗎?

但我想我可以嘗試反正回答這個問題......

我的問題是,我需要創建一個存根或嘲笑的服務?將此響應用作輸入以產生來自響應的預期輸出。它期待一個ServiceResponse。

如果我理解正確 - service你的意思是一個類不是應用程序?如果是這樣的話,是的,在控制器中,我會注入一個存根服務。

另一個問題是我們是否需要在進行合同測試時加載內存數據,還是隻需要測試控制器本身?

這與以前的答案有關。您的控制器不會將工作委派給任何真正的服務實現,因此不會訪問數據庫。如果檢查出樣品(https://github.com/spring-cloud-samples/spring-cloud-contract-samples/blob/master/producer/src/test/java/com/example/BeerRestBase.java),你會看到,基類注入給它嘲笑並沒有真正的融合發生地

編輯:

「這我建設服務具有控制器,轉換從groovy發送的我的輸入負載並以json格式提供所需的輸出「實際上是通過Spring Cloud Contract生成的測試完成的描述。下一句是

但是,控制器正在發送json到另一個具有一些URL的服務,如下所示。

在合同測試中,我不在乎你的控制器進一步做什麼。如果它在控制器中將請求發送給其他應用程序,則應將其包裝在服務類中。然後你會在你的合同測試中嘲笑這樣的服務。我們在合同測試中關心的是我們是否可以溝通。不是整個端到端功能是否正常工作。

+0

感謝您的回覆。我糾正了我的問題。 Mine是Java應用程序,但是按照Spring雲合同在groovy(合同)中寫入的請求和響應。 – vkrams

+1

我已經更新了我的答案 –

相關問題