有相当多的数据,所以我想尽可能避免使用灯具,因为我假设每次都需要很长时间来填充数据库.
谢谢,
麦克风
ruby -Itest test/unit/some_test.rb
执行测试数据库重新创建的rake任务(您可以像这样手动运行)
rake db:test:prepare
但我的建议是,你做错了.
测试中的一般想法是,您知道数据库的状态,因此知道对函数的期望.
例如.
test "search_by_name" do expected = User.all.select{|u| u.name =~ /arthur/i} assert_equal expected,User.search_by_name("Arthur")end
是一个很好的测试
但是,如果你不知道数据库的状态,你怎么知道有一个亚瑟?
上述测试将通过三个不良案例;
>没有用户记录
>所有用户都被称为“亚瑟”
>没有用户称为arther.
因此创造虚假现实更好
我们知道数据库的状态.
我们想要;
>至少有一个名为“Arthur”的用户
>至少有一个名为“Arthur”的用户作为另一个单词的一部分
>至少一个非亚瑟用户.
一个更好的测试,假设db是空的,并且使用工厂女孩,可能是.
test "search_by_name" do expected = [ Factory.create(:user,:name => "Arthur"),Factory.create(:user,:name => "MacArthur") ] not_expected = [Factory.create(:user,:name => "Archer")] assert_equal expected,User.search_by_name("Arthur")end总结
以上是内存溢出为你收集整理的ruby-on-rails – Ruby on Rails – 测试数据库全部内容,希望文章能够帮你解决ruby-on-rails – Ruby on Rails – 测试数据库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)