2017-05-29 40 views
0

假設我們有3個微服務A,B和C.我們要測試微服務A的功能,這取決於微服務B.但是,微服務B的響應也取決於微服務C.是否支持Spring Cloud Contract?這種情況?因爲通過閱讀文檔,我得知當爲A-B(並插入到B)之間的交互創建契約時,B中的自動生成的測試將會失敗,因爲它等待C的響應以提供答案。即使我們有另一個B-C交互合同,這意味着我們必須修改B中的自動生成的測試,以便測試成功。爲A-B創建合同時是否有辦法指定這也取決於交互B-C?Spring Cloud Contract是否支持微服務之間的串行依賴關係?

回答

1

我認爲你正在閱讀的文檔比實際存在的更多。當您測試消費者時,合同不會被聲明,它只會生成與合同相匹配的存根響應。因此,在你的場景中,爲了測試服務A,你只需要服務B的存根。你甚至不需要這些合同,也不需要服務C中的任何東西。我想知道你是否真的嘗試過它,工作?

+0

戴夫是對的。你需要做的是創建兩個單獨的合同。對於服務B和服務C.這樣,您可以創建2組存根 - 對於服務B和對於服務C.然後,您可以檢查A和B之間的集成,B和C之間的集成。請記住,合同測試原則上不是測試功能。這是關於檢查API的正確性。 –