簡體   English   中英

在> = Rails 3.2.0中創建“測試”數據庫內容的最佳方法是什么?

[英]What's the best method for creating “test” database content in >= Rails 3.2.0?

我希望能夠創建幾十個用戶,文章(或該應用程序獨有的任何資源)等,以查看該應用程序的外觀以及填充后的響應方式。 這只是出於測試/開發目的,因此我希望能夠輕松地將其回滾,銷毀或進行其他操作。 誰知道呢,也許我想得太多了。

我見過有人建議僅使用標准遷移,這是一個主意,但我想這樣做是可選的,我不希望項目中的每個人都在更新應用程序時獲得示例內容。

其他人提到過“工廠女郎”,但看起來它要么是矯kill過正,要么是真正為測試目的而設計的寶石的側面使用等。目前還不是很清楚。

那么你們在這種情況下會做什么?

我推薦一個耙任務。 您可以將其粘貼在lib/tasks ,以便項目中的每個人都可以使用它,但並不是每個人都需要運行它,只有在運行時它才能執行任何操作。 這是一篇有關編寫rake任務的出色教程 ,只記得記住閱讀Rails標題下的部分,以了解如何引入模型。

在那之后,您的瑞克任務基本上只是紅寶石代碼。 我建議使用動態find_or_create_by方法來顯式創建所需的模型,並且如果該模型多次運行,則不會多次創建它們。 您還可以選擇在創建特定模型之前銷毀所有記錄。

我不建議使用Factory Girl,因為您可能希望顯式控制模型的創建方式。

這是一個示例性的rake任務,展示了它的簡單程度:

#lib/tasks/my_task.rake
task :fake_data => :environment do
    MyModel.find_or_create_by_name("Test")
end

然后在您的控制台中:

rake fake_data

要么:

rake fake_data RAILS_ENV=test

da!

看一下Rails種子數據功能

http://railscasts.com/episodes/179-seed-data

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM