對于每個這樣的測試,還有其他的測試來證明模擬數據對于實際服務“有意義”,這也通過單元測試來完成,通過重放客戶端調用服務器來獲得的相同數據。
這種集成測試模式適用于任何 RPC 調用,因此可以測試后端服務器對另一個服務器執行的 RPC 調用或者客戶端調用。 當我們都應用這種方法時,我們有了可以保證集成測試正確的小測試用例,并確保我們測試的行為是“真實的”。
為了達成這個方案,我建立、評估以及丟棄好幾個原型, 雖然構建原型及驗證只花了一天時間,但是我和另一個工程師花了一年時間,來將它編程團隊成員可以使用的一個工具。
當看到新框架從他們項目中替換了大量測試代碼時,工程師非??斓亟邮芰诵路桨?。為了進一步推動其采用新框架,我與工程團隊組織了多天活動,用于遷移測試用例。將現有單元測試遷移到新框架,縮小覆蓋差距,并創建驗證 mock 的新測試,這些需要幾個月的時間。一旦我們完成了大約 80% 的測試用例,我們就開始比較新測試框架和現有端到端測試的效果。
最終的效果非常的好:
新測試與端到端測試同樣有效地發現錯誤。
新測試在大約 3 分鐘內完成運行,而不是 30 分鐘(端到端測試)。
客戶端測試是 0% 失敗。驗證新測試通常比端到端測試更穩健。
此外,新測試框架是單元測試,因此您可以在 IDE 中運行它們,并通過 IDE 進行單步調試。這樣使得我們很少運行端到端測試,運行端到端測試只是為了檢測服務器的錯誤配置,而不是做功能測試。
原文轉自:https://www.testwo.com/article/891