我是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控制台中执行此操作时,它工作正常。
感谢您的帮助。
答案 0 :(得分:0)
您是在test
模式还是在development
模式下运行rails控制台?请记住,用于测试和开发应用程序的rails使用不同的数据库。
确保在测试之前准备好所有记录并将其存储在数据库中。为此,您可以使用灯具或工厂(例如factory_girl
)。
PS。
相反,active_courses.length.should eql 1
您可以使用更具可读性的active_courses.should have(1).item
。