當您正在對數據訪問層或大部分應用程序堆棧進行集成測試時。如果在同一個數據庫上運行多個測試,最好的方法是什麼?數據庫集成測試
Q
數據庫集成測試
9
A
回答
9
交易。
什麼在軌道上的單元測試框架的紅寶石確實是這樣的:
Load all fixture data.
For each test:
BEGIN TRANSACTION
# Yield control to user code
ROLLBACK TRANSACTION
End for each
這意味着
- 任何改變你的測試,使該數據庫將不會影響其他線程,同時它在 - 進度
- 下一個測試的數據沒有受到之前測試的污染
- 這比每次測試手動重新加載數據要快數十億倍。
我個人認爲這是很酷
9
對於簡單的數據庫應用程序,我發現使用SQLite非常寶貴。它允許您爲每個測試都有一個獨特的獨立數據庫。
但是,如果您使用簡單的通用SQL功能或者可以輕鬆地隱藏SQLite和您的生產數據庫系統之間的細微差異,但是我一直髮現在SQL中相當容易我開發的應用程序。
0
我想同時接受免費角馬的獵戶座愛德華茲的答案,但它不會讓我。我想這樣做的原因是,我得出這樣的結論:這是實現它的兩種主要方式,但選擇哪一種取決於個別情況(主要是數據庫的大小)。
0
也在不同時間運行測試,以便它們不會影響對方的性能或有效性。
1
只要添加到免費Wildebeest的答案我也使用HSQLDB做類似的類型測試,其中每個測試獲得一個乾淨的數據庫實例。
0
儘管在這裏其他答案之一不像Rails單元測試框架那麼聰明,但爲每個測試或一組測試創建不同的數據是另一種方式。這個解決方案的繁瑣程度取決於你擁有的測試用例的數量以及它們彼此之間的依賴程度。如果每個測試或一組相關測試都有一個數據庫,則單調乏味將會成立。
運行測試套件時,您會在開始時加載數據,運行測試套件,卸載/比較結果,確保實際結果符合預期結果。如果沒有,再次進行循環。加載,運行套件,卸載/比較。
相關問題
- 1. TeamCity數據庫集成測試
- 2. 集成測試共享數據庫
- 3. 測試NodeJS和SQL數據庫集成
- 4. Node.js集成測試+數據庫
- 5. 如何寫數據庫集成測試
- 6. Incite數據庫集成測試失敗
- 7. 爲集成測試生成測試數據庫
- 8. NAnt與數據庫集成測試,並最終持續集成
- 9. 針對測試數據庫集成測試Web服務
- 10. 集成測試與測試數據庫鏈接的WCF服務
- 11. Go - 集成測試使用測試數據庫連接
- 12. 編寫集成測試,測試數據庫,Web服務調用
- 13. 集成測試外部庫?
- 14. CakePHP3集成測試和JSON數據
- 15. 的Rails:集成測試數據
- 16. 實體框架集成測試DropCreateDatabaseAlways不清除測試之間的數據庫
- 17. 單元測試和集成在maven數據庫層模塊中測試劃分
- 18. 彈簧引導啓動測試無法運行數據庫集成測試
- 19. 在Grails中編寫集成測試,用於測試數據庫持久性
- 20. SQL Server數據庫單元測試和持續集成
- 21. 使用Microsoft .NET進行數據庫集成測試
- 22. 使用Jasmine進行數據庫集成測試
- 23. 集成測試數據庫重建性能
- 24. 運行集成測試時「轉儲」hql數據庫
- 25. 如何使用實際數據庫進行集成測試?
- 26. Spring引導與不同數據庫環境的集成測試
- 27. Ruby on rails集成測試數據庫清潔防止乾淨?
- 28. 可維護性數據庫集成測試
- 29. 用於集成測試的獨立數據庫
- 30. 可以在集成測試中打到數據庫嗎?
我總是發現一個問題在stackoverflow。如果你真的想說這兩個都是好的,那就是選擇的問題。 我想如果兩者同樣有用,那麼他們會被類似的數字投票,所以留在頂部。讓人們決定:) – 2008-09-14 23:41:23