0
對於編寫角碼的前端開發人員來說,我應該單元測試一個JavaScript前端項目的哪個部分?我發現它不需要測試很多代碼,我最大的擔憂是需要測試角度服務的哪一部分?如果$ httpBackend是模擬調用,調用它的意義何在?在角度的web應用程序什麼需要進行單元測試?
對於編寫角碼的前端開發人員來說,我應該單元測試一個JavaScript前端項目的哪個部分?我發現它不需要測試很多代碼,我最大的擔憂是需要測試角度服務的哪一部分?如果$ httpBackend是模擬調用,調用它的意義何在?在角度的web應用程序什麼需要進行單元測試?
隨着項目日益複雜化,您可能會發現您的角度應用程序正在做很多工作。 Angular的設計允許客戶承擔處理和渲染服務器數據的許多責任。
是的,我同意,你不應該測試任何東西,但你自己的代碼。所以,編寫$http
的測試是沒用的。但是,如果您希望服務器返回特定的JSON合約,並且您希望確保您正確地將其映射到您將在角度應用程序中使用的結構,那麼值得測試。此外,如果您在服務或控制器中進行計算,則該邏輯值得測試。
Angular本身被設置爲支持TDD,因爲它在視圖,控制器和服務之間有很好的分離關係(甚至可以編譯和測試指令)。您編寫的所有JavaScript代碼都是測試覆蓋率的良好候選者。所以,恕我直言,你應該單元測試你的指令,控制器和你的服務。你可以得到儘可能詳細的信息,以保證你的代碼是穩定的。
感謝您解決這個問題,因此我幾乎每次寫代碼時都會使用模擬方法來處理所有未確定的事情,測試將確保邏輯流程是正確的。因此填充空白將產生相同的結果。現在還有兩個問題是否可以請回答,我有非常複雜的指令,因此我的意思是非常複雜的指令,最好的方法是將邏輯分成單獨的函數進行測試,還是應該對每個函數進行測試該指令?和2,我經常發現我的測試比代碼本身長3倍,這是正常的嗎? – user2167582
對於問題1,我有一個通用的驗證指令,可以驗證這三個字符的長度/模式/值/以及其他許多方面,並使我的生活更容易寫入表單驗證,並且他們執行復雜的驗證,例如將信用卡表單的卡在嘗試輸入卡號等時,請將msg輸入爲'請先選擇一種類型的卡'。在這種情況下編寫單元測試的最佳方法是什麼? – user2167582
這兩個問題可能是SO上的新帖子。我不確定我能完全回答他們,但我相信其他人可以。對於q1:通常,我一次只關注一個功能的一個方面。所以,你會有很多測試來對一個函數進行三角化並且執行所有的流程。但作爲一般規則,嘗試一次只測試一件事。對於問題2:這實際上取決於你正在測試的內容。但是,我會說,通常測試會更長一些,因爲他們需要設置和斷言。 –