0

我在Rails應用程序中使用了重要的數據庫種子,這些數據庫種子綁定到UI元素中,因此需要進行集成測試。針對具有重要數據庫種子的Rails應用程序運行集成測試的最快方式是什麼?

我正在使用database_cleaner在我的測試後清理,但由於應用程序的沉重js使用,我的大多數測試無法與事務策略一起運行,該策略允許我指定表以忽略回滾。

結果是我必須在每次測試之前重新播種數據庫或處理髒數據庫。有沒有人有這種情況下的測試技巧或知道任何可能有幫助的工具?

謝謝!

回答

0

我在過去通過使用事務處理了我們的測試(我們現在使用的是一些本地產品,但之前我們使用過數據庫清理器)。

關鍵是迫使所有人都使用相同的數據庫連接。我爲此關注的路徑是將測試中的數據庫池大小設置爲1:每個人都必須共享相同的連接,因爲活動記錄不會讓您創建更多連接。

對於這個工作,你需要小心使用不再釋放連接,通過調用ActiveRecord::Base.clear_active_connections!

有2個地方,你需要做到這一點

  • 當你的測試代碼即將打電話visitclick
  • 每個請求後(使用Rack中間件公司招聘你基本上可以複製ActiveRecord::ConnectionAdapters::ConnectionManagement

這適用於我們針對使用ajax獲取中間數據等的頁面編寫規範,但最初可能會有點棘手。我更詳細地寫了它a while back

相關問題