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