2013-03-28 47 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 
相关问题