2013-03-28 56 views
1

在鐵軌上的控制檯我的類用戶是這樣的:如何在Rails控制檯中通過腳本測試我的SQLite數據庫?

irb(main):005:0> User 
=> User(id: integer, name: string, created_at: datetime, updated_at: datetime) 

我可以用產生的用戶的一個實例

irb(main):006:0> User.create(:name => "user0") 

我想要做的是通過創建一個數X測試我的數據庫用戶的實例。我想到了我在其中循環的循環編寫Ruby腳本 - (!不是真正的Ruby代碼)像

for i in 1..X do 
    User.create(:name => "name"+i) 
end 

但我不知道如何訪問我的課在Ruby和如何「說」控制檯生成實際的對象。

感謝您的回答!

回答

2

您在這裏有幾個選項。最好的選擇是學習如何編寫單元測試,或者使用Rails的默認Test::UnitRSpec或其他替代方法。這是正確的方式,實際上Rails默認都是通過測試來連接的。你有一個test目錄,和rake test和其他測試任務。如果您使用Rails生成器(rails g model Foo),它甚至會爲您創建測試文件。你只需要填寫它們。

如果您還沒有準備好學習測試框架,那麼您可以將上面的代碼放到一個文件中(我們稱之爲test_user.rb)並通過rails runner運行它。這將引導Rails的環境中執行代碼之前,你將有機會獲得該型號:

rails runner test_user.rb 
+0

感謝吉姆!學習測試框架是我的待辦事項列表中的第一名,但我今晚的時間很緊。讓我看看如果我能得到第二個選項工作 – Zois 2013-03-28 00:18:02

+0

哇這實際上工作(我很驚訝,因爲我做了很多C編程和紅寶石和ror是非常直接) - 非常感謝!:-) – Zois 2013-03-28 00:28:50

+0

很高興幫助。我看到你是新來的。如果您對答案滿意,請點擊左側的複選標記以接受答案。隨時等待並接受備用答案。歡迎登機。 – 2013-03-28 00:31:30

1

好像你想爲你的數據庫創建一些種子數據。爲什麼不直接在Rails控制檯中運行代碼?或者你可以創建一個Rake任務,並從那裏運行播種。

我也建議使用Faker,這會給你一些真實的數據看:

require 'faker' 

for i in 1..X do 
    u = User.new 
    u.first_name = Faker::Name.first_name 
    u.last_name = Faker::Name.last_name 
    u.email = Faker::Internet.email 
    u.notes = Faker::Lorem.paragraph 
    u.cell_phone = Faker::PhoneNumber.cell_phone 
    u.home_phone = Faker::PhoneNumber.phone_number 
    u.save 
end 
相關問題