我們有一堆單元測試,它測試了很多網頁和REST API服務。單元測試和燈具
目前,當我們的測試運行時,它會從這些頁面中直接拉出來,但這可能需要很長時間才能運行,而且它也覺得測試應該測試更多的代碼 - 而不僅僅依賴於它們的啓動和響應這就說得通了..)。
是更好的做法是保存單元測試有效的API響應,並在安裝過程中加載這個嗎?
想法?
我們有一堆單元測試,它測試了很多網頁和REST API服務。單元測試和燈具
目前,當我們的測試運行時,它會從這些頁面中直接拉出來,但這可能需要很長時間才能運行,而且它也覺得測試應該測試更多的代碼 - 而不僅僅依賴於它們的啓動和響應這就說得通了..)。
是更好的做法是保存單元測試有效的API響應,並在安裝過程中加載這個嗎?
想法?
我寧願使用一個測試/模擬數據源,而不是實際的現場之一。這樣可以讓您在不實際使用網絡資源的情況下讀取數據,並且可以獲得更好的性能(取決於您的體系結構,可能會或不會輕易切換使用的數據源)。
但同樣重要的是它可以讓你玩的,你給回的數據,並允許您測試邊緣的情況下,無效數據響應等。根據與數據,這可能是重要的應用程序做什麼。
這聽起來像你想在一次測試太多肯定的。
您應該測試的代碼生成的REST API的響應(如果這個代碼是你cotrole下),並完全獨立地使用它的代碼。如果您不控制生成API的代碼,則應該使用虛假,有效的API答案來提供代碼並將其用於您的測試。
依託頁面被激活並響應聽起來更像集成測試。如果您依賴於外部API,那麼通過集成測試驗證API仍然按照您的預期運行始終很有趣。
@Axelle你是對的。三種測試類型。測試API服務,使用模擬API服務測試網頁以及集成測試。 – Gutzofter 2010-05-05 16:04:48
我會處理這個問題的方式是使用嘲諷。讓我們假設你有一個負責調用外部服務的類和一個獨立的類,使用這些結果。你可以創建一個調用服務的類的模擬,並返回你想要的任何特定結果。然後,您可以測試需要結果而不處理任何外部呼叫的班級。
http://en.wikipedia.org/wiki/Mock_object
http://martinfowler.com/articles/mocksArentStubs.html
我很好奇嘲笑的有效性作爲一個項目的進展。似乎通常情況下,BE會更改和打破FE,並且在QA發現UI中存在錯誤之前,沒有人會看到它。 imho FE測試以確保BE的完整性是一個好主意,並且至少應該以某種方式與您的模擬,諾克斯或其他方面相關聯。 – Shanimal 2016-06-24 19:29:08