是否有必要對ActiveRecord驗證進行單元測試,或者已經進行了充分測試,因此足夠可靠?是否需要單元測試ActiveRecord驗證?
回答
驗證本身應該是可信的,但你可能要檢查確認是否存在。換句話說,測試某件東西的好方法就好像它是一個黑盒子,從實現中抽象出測試,例如,您可能有一個測試來檢查人員模型不能保存沒有名字,但不關心Person類如何執行驗證。
這應該足以接受庫如ActiveRecord的是由開發人員更好地測試比以往任何時候都將是你對他們來說這是一個首要關注的問題,因爲你是在最好的切線。
這並不是說沒有錯誤 - 很久以前我發現了一個很小的MS SQL Server適配器 - 但是您可能正在執行的測試類型不太可能將它們暴露爲他們很可能是邊緣情況。如果你做找到一個bug,當然,如果你用暴露它的測試用例報告它可能是非常有用的!
我只測試ActiveRecord的內部,如果我正在尋求更好地瞭解一個特定的方面,該庫實現。我不會在任何應用程序項目中包含這些探索性測試,因爲它們與項目無關。
在一般情況下,你應該寫的代碼,你自己寫的測試:如果你住或嘗試生活在一個TDD的世界,測試前應寫。如果您的模型具有驗證規則,那麼您幾乎肯定應該編寫測試以確保規則存在。在大多數情況下,測試將是微不足道的,但是如果一個不慎線被刪除在未來一段時間會真的有用...
由於邁克寫道,起碼你應該測試驗證存在。這只是一個簡單的複式會計(完整性檢查)。
根據具體情況,您還應該測試您的模型在特定情況下是否有效或無效。例如,如果您的字段需要特定的格式,則測試有效的格式和不格式的格式。這是很容易看到這意味着什麼在你的測試讀了幾個例子:
class Person < ActiveRecord::Base
validates_format_of :email,
:with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
end
是的,驗證很好測試和足夠可靠的。但是,您正確使用驗證是您想驗證的內容。
作爲一個附註,Ryan Bigg的博文has_and_belongs_to_many double insert提到有人在ActiveRecord中遇到一個錯誤(不過與驗證無關)。正如他指出的那樣,不要認爲Rails不可能有錯誤,因爲我們知道Rails有900個開放門票。
但是,是的,你寫一個測試的主要原因是檢查你的ActiveRecord的使用是正確的。
- 1. TDD是否需要單元測試?
- 2. 是單元測試需要
- 3. 我是否需要在單元測試中測試邊界類?
- 4. 需要在單元測試中驗證陣列的大小
- 5. 如何編寫單元測試來驗證WCF-RIA服務的DomainService查詢方法是否需要驗證?
- 6. 單元測試驗證
- 7. Django驗證單元測試
- 8. 驗證是否需要TCP?
- 9. 可測試設計是否需要連續驗證?
- 10. 是否有單元測試,主要是模擬驗證一種氣味?
- 11. 驗證單元測試中的交互是否破壞封裝?
- 12. 如何測試單元格是否已通過數據驗證?
- 13. 單元測試驗證是否存在奇怪的行爲
- 14. 我是否需要單元測試構造函數?
- 15. 組合根是否需要單元測試?
- 16. 我是否需要單元測試此功能?
- 17. Maven surefire插件是否需要運行單元測試?
- 18. 單元測試XNA:我是否需要模擬我的GraphicsDevice
- 19. 驗證測試臺端口需要指示還是不必要?
- 20. 使用集成測試練習BDD - 我是否也需要單元測試?
- 21. 單元測試和驗收測試是否足夠?
- 22. 驗證之前驗證是否需要驗證?
- 23. 單元測試(是或否)
- 24. CakePHP - 單元測試驗證不叫
- 25. UI驗證的單元測試
- 26. C#單元測試貨幣驗證
- 27. ZF3單元測試身份驗證onBootstrap
- 28. 單元測試驗證密碼
- 29. 在單元測試中驗證static_assert
- 30. 流利的驗證單元測試