我明白單元測試背後的想法,但我試圖想到一個乾淨簡單的方法,當它需要數據庫功能時。例如,我有一個函數返回基於數據庫選擇查詢的結果。爲了正確地看到只有正確的結果被返回,數據庫會一直保持不變。當需要數據庫不活動時(無論是讀取,寫入,更新還是刪除),執行單元測試(使用PHP)的最佳方式是什麼?什麼是使用數據庫爲功能創建單元測試的標準/最佳實踐?
回答
有一個在PHPUnit的手冊上是一整章:
- http://www.phpunit.de/manual/current/en/database.html也值得一讀
- http://matthewturland.com/2010/01/04/database-testing-with-phpunit-and-mysql/
這就像一切時的單元測試。創建一個已知狀態並根據它測試你的代碼,看它是否返回預期的結果。
恐怕指向的鏈接isn沒有工作(404)。 – 2012-08-21 08:55:59
更新後的鏈接https://phpunit.de/manual/current/en/database.html – leticia 2014-09-27 20:34:22
就我個人而言,我創建了一個虛擬測試數據庫,併爲每個測試運行(我在setUp
函數中正確執行該操作)爲其填充了一個已知數據集。然後測試運行該數據集,然後它被刪除tearDown
...
現在,這是一個比單元測試更集成測試(我個人對待它與單元測試不同,運行在它的自己的時間表以及其他集成測試),但它仍然非常有用。
+1對'更多的集成測試比單元測試' - 我目前正在確定我們的'單元'測試對數據庫有副作用並將它們重新歸類爲集成測試,以便我們可以更頻繁地運行適當的單元測試,並保存整夜運行的慢速集成測試。 – 2010-08-24 19:59:47
它不是一個單元測試,如果它需要數據庫的話。
坦率地說,很明顯,提問者正在談論*功能*測試,這應該確實像你的數據庫。 – 2010-09-13 05:01:23
這很有趣!從來沒有意識到這一點... – Sliq 2014-09-28 15:28:52
這應該是一個問題的評論,或者甚至編輯,但這不是一個答案。 – 2016-10-11 15:09:23
- 1. 什麼是一些C++標準庫使用最佳實踐?
- 2. JDBC /數據庫單元測試的最佳實踐
- 3. 單元測試的最佳實踐XmlDocument
- 4. 您的SharePoint數據庫創建最佳實踐清單是什麼樣的?
- 5. 最佳實踐:組織單元測試
- 6. Sencha Touch單元測試最佳實踐?
- 7. Javascript單元測試最佳實踐
- 8. Symfony單元測試最佳實踐
- 9. 在調試或添加新功能時管理較舊的單元測試的最佳實踐是什麼?
- 10. 您使用什麼最佳實踐來測試數據庫查詢?
- 11. 窯庫的最佳實踐是什麼?
- 12. 實施數據庫修訂的最佳實踐是什麼?
- 13. 什麼是最佳實踐:使用queryBuilders或創建表視圖?
- 14. 在Ruby中使用斷言的最佳實踐是什麼,但不是作爲單元測試的一部分?
- 15. CSS3 - 性能最佳實踐是什麼?
- 16. 單元測試重複使用代碼,最佳實踐尋求
- 17. 數據庫設計的最佳實踐是什麼?
- 18. 什麼是數據庫查詢的最佳實踐?
- 19. 連接到SQL數據庫的最佳實踐是什麼?
- 20. 使用數據庫最佳實踐?
- 21. 數據庫最佳實踐
- 22. 單元測試和有序測試 - 最佳實踐
- 23. 什麼是使用鈦創建數據庫的最佳方式
- 24. 什麼是記錄標準和最佳實踐的最佳平臺?
- 25. 什麼是測試TitanDB圖形的最佳實踐
- 26. 運行集成測試的最佳實踐是什麼?
- 27. 什麼是測試Web服務的工具和最佳實踐?
- 28. 在Rails中測試模型的最佳實踐是什麼?
- 29. 注入的構造函數,單元測試和最佳實踐
- 30. 性能基準測試的最佳實踐
請參閱:http://stackoverflow.com/questions/145131/whats-the-best-strategy-for-unit-testing-database-driven-applications/145163 – 2010-08-24 19:17:32