我已經開始使用Rspec爲一個非常舊的項目編寫測試。我測試的模型都是ActiveRecords(後端是Oracle)。 我讀過一些博客,說我們應該使用嘲諷和樁/夾具/工廠女孩超過實際的SQL。 我很困惑。我將不得不存儲很多方法並創建大量對象。這是一個很好的做法嗎?在Rspec中使用數據庫查詢是否好?
3
A
回答
7
當您在測試的模型,這是很好的讓你的集成測試針對數據庫。也就是說,不要試圖模擬出ActiveRecord的東西,而只是使用模型對象。 FactoryGirl和Fabrication都是構建真實模型對象的簡便捷徑,它們是測試ActiveRecord模型的最佳實踐。
由於這是遺留代碼,我建議不是嘲笑或磕碰的舊代碼太多,因爲如果每個組件隔離測試隔離纔有效。
然而,編寫TDD的代碼時,嘲諷和磕碰有很多好處:
- 爲您提供了細粒度測試(如果方法休息,你的測試告訴你是哪一個)
- 你的測試運行得更快,因此您的TDD週期更短
- 可以讓您斷言您的代碼如何與其他對象交互
- 如果您必須過度殘留和模擬其他模型以隔離一個模型,通常這是一個好兆頭,代碼的耦合度太高,而且d eserves一個重構
1
通常你會使用存根,那麼你就可以運行,無負載測試AR,他們將運行速度快了很多。
我個人認爲,測試的假數據是沒有測試......也許在開發環境中進行TDD ......也許......,但對於測試環境應該儘量接近儘可能真實的東西。
當然,這是我的意見,不得被認爲是目前學校。
相關問題
- 1. 檢查數據庫中是否存在使用查詢> NodeJS
- 2. 查詢Android數據庫是否存在!
- 3. 在Coldufsion中,是否最好在結構或查詢中返回查詢數據?
- 4. 在codeigniter中的輔助函數中使用數據庫查詢是否是一種好的做法?
- 5. 查詢Firebase用戶是否檢查數據庫中是否存在聯繫人
- 6. 使用ajax查詢數據庫是否存在項目。 Rails 3
- 7. 查詢檢查訪問數據庫中是否存在表
- 8. Mysql查詢檢查數據庫中是否存在url
- 9. 數據庫使用RSpec
- 10. django子查詢使用的數據庫是否粘滯?
- 11. 是否可以在使用兩個數據庫的hibernate中應用查詢?
- 12. 檢查用戶是否使用會話登錄,而不是數據庫查詢
- 13. 使用SQL檢查數據庫中是否存在用戶
- 14. 檢查用戶名是否在數據庫中使用ASP.Net
- 15. 在數據類中進行數據庫查詢是一個好主意嗎?
- 16. 是否可以在查詢中動態切換數據庫表?
- 17. 是否可以在NSUrl請求中發送數據庫查詢?
- 18. 在數據庫查詢中是否有使用REGEXP的dplyr方法?
- 19. 如何查詢postgreSQL數據庫來檢查值是否存在?
- 20. 使性能更好地檢查數據庫中是否存在字符串
- 21. 檢查數據庫查詢中是否存在數組中的值
- 22. 檢查數據庫中是否存在數據庫
- 23. 使用LINQ檢查數據庫中是否存在表格
- 24. 使用PHP檢查數據庫是否存在於postgreSQL中
- 25. 使用PHP檢查數據庫中是否存在外鍵
- 26. 檢查用戶數據是否已經在數據庫中
- 27. 在xml文件中保存數據庫連接是否好用
- 28. 是否可以使用WCF數據服務查詢多個數據庫?
- 29. 是否有可能在PHP中使用sqlite數據庫和mysql數據庫並針對彼此運行查詢?
- 30. 這是否/ elseif使我的光標查詢數據庫兩次?
這正是我一直在尋找,謝謝你的建議! – 2012-07-31 04:21:37