Rspec未找到对象的已提交更改

时间:2012-05-24 20:48:20

标签: ruby-on-rails rspec

我是rspec和ruby的新手......

我在course_rspec.rb

中有以下代码

...   它“启用课程后检查活动课程”     course = Course.create(:title =>“Testing”,:description =>“Testing”)     course.enabled = true     course.save

active_courses = Course.where(:enabled => true)
active_courses.length.should eql 1

端 ...

我收到以下错误

1)启用课程后对课程进行课程检查      失败/错误:active_courses.length.should eql 1

   expected: 1
        got: 0

   (compared using eql?)
 # ./course_spec.rb:86:in `block (2 levels) in <top (required)>'

为什么Course.where方法不返回任何对象?当我在rails控制台中执行此操作时,它工作正常。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您是在test模式还是在development模式下运行rails控制台?请记住,用于测试和开发应用程序的rails使用不同的数据库。 确保在测试之前准备好所有记录并将其存储在数据库中。为此,您可以使用灯具或工厂(例如factory_girl)。

PS。 相反,active_courses.length.should eql 1您可以使用更具可读性的active_courses.should have(1).item