在理想情況下,您作為 Sails 使用者可以執行的任何可能操作——無論是以程式方式還是透過命令列工具——都應該有一個測試。然而,Sails 中配置變化的數量,加上使用者程式碼可以覆蓋幾乎任何核心部分的關鍵事實,意味著我們永遠無法完全達到這個程度。 這樣也沒關係。
相反地,Sails 專案的目標是讓您可能使用的任何 Sails 功能——無論是以程式方式還是透過命令列工具——都有一個測試。在這些功能於依賴項中實作的情況下,該功能的唯一測試存在於該依賴項中(例如 Waterline、Skipper 和 Captains Log)。即使在這些情況下,Sails 中的測試最終也會重新測試某些已經由 Sails 的依賴項驗證的功能,這並沒有什麼不對。
我們應該努力避免驗證排他性的測試:這會削弱我們快速開發的能力。換句話說,測試不應因為引入附加功能而失敗。
例如,如果您正在編寫測試以檢查是否使用 sails new
建立了適當的檔案,那麼檢查這些檔案是有道理的,但確保僅建立這些檔案(即新增一個新檔案不應破壞測試)是沒有道理的。
另一個範例是驗證藍圖配置正確性的測試,例如 sails.config.blueprints.rest
。 測試應檢查藍圖在啟用和停用 rest
配置時是否行為正確。 我們可以更改配置、新增更多控制器特定的選項等等,而我們只需要編寫新的測試。
另一方面,如果我們測試藍圖行為的策略涉及評估行為,然後判斷配置「應該」是什麼樣子,那麼當我們新增新選項時,我們就必須修改測試。 這聽起來可能沒什麼大不了的,但它可能會迅速失控!