我有兩個應用程序,也就是說,A和B,通過API互相交談,現在我寫黃瓜試驗A,我有兩個選擇:兩個應用程序,如何測試通信
只需測試API是否發送到B並存根B的響應並存根B的響應,併發送真正的請求到B,並用VCR記錄請求/響應
我更喜歡選項#1,但我的同事說至少需要一個真正的請求來確保系統(包括A和B)正在工作。
我擔心的是:
如何對於B從A的測試準備測試數據?
它的脆弱,混合在一起,什麼都改變了B可引起一
任何評論失敗?
我有兩個應用程序,也就是說,A和B,通過API互相交談,現在我寫黃瓜試驗A,我有兩個選擇:兩個應用程序,如何測試通信
只需測試API是否發送到B並存根B的響應並存根B的響應,併發送真正的請求到B,並用VCR記錄請求/響應
我更喜歡選項#1,但我的同事說至少需要一個真正的請求來確保系統(包括A和B)正在工作。
我擔心的是:
如何對於B從A的測試準備測試數據?
它的脆弱,混合在一起,什麼都改變了B可引起一
任何評論失敗?
對於大多數測試,存根請求/響應,測試在脫機時會通過的方式,或者不是。
對於一個測試,做一個簡單的測試,外部服務表現爲你的存根和嘲笑說應該。
E.G.執行獲取請求仍會返回JSON,其中包含您希望確保您的mock有效的屬性。
大多數情況下,測試套件不應監視外部服務的「啓動時間」。只是它表現了你的期望。
對於正常運行時間的問題,您應該查看系統管理員一面Nagios,Pingdom,Pagerduty或什麼不是。
您正在寫黃瓜測試,意味着它是一個集成測試。 對於集成測試,您最好不要嘲笑任何東西,這是保存應用程序的最後一名安全警衛。
所以你最好發一次真正的請求,以確保你的請求是正確的,你可以隨時重複這個真實的請求。
的解決1問題:實施
所以我sugguest爲B創建一個沙盒應用程序,使真正的請求
第二段,我可以看到你m恩,你試圖做一個測試,以確保模擬不過時,在我的情況下,我認爲測試應該去B應用程序(外部服務),它應該有一個測試,以確保它返回它承諾,謝謝你的回覆,但我不能同意你的第二段,:D – leomayleomay