0

我是 RoR 的新手,可能会错过一些东西。你能告诉我有什么问题吗?

单元测试中的测试方法

测试“创建”做

prices = [12,14,16]
    prices.each {|p| 
        course = Course.new(:name => "j2ee", :price => p)
        course.save!
        puts course.persisted?
    }
#Course.where({:price => 12...17}).all.each do |c|
Course.find_by_price(12) do |c|
    puts c.price
end

结尾

运行测试的命令行输出

运行测试:

真的
真的
真的
12
..

像预期的那样。

但是为什么 db 表不包含行?
sqlite3 test.sqlite3
sqlite> 从课程中选择计数(*);
0

这是定义。正确的数据库。如果我使用夹具数据,它会正确插入,直到下一次测试可用。非常感谢!干杯抢

4

1 回答 1

0

您的问题没有指定您正在使用什么测试框架,但一般来说,测试框架会自行清理,这是礼貌的做法。

您确实说过它适用于固定装置,因此您无需担心。但是,如果您想手动验证持久性是否正常工作,请打开控制台并输入您的测试。

prompt$ rails c
> Course.new(:name => "j2ee", :price => 12).save!
> Course.all

控制台打印所有课程。请注意,如果您使用的是 bundler(应该是),您可能需要使用“bundle exec rails c”启动控制台。

于 2012-06-02T14:02:21.567 回答