0

私はrspecとルビーが初めてです...

私はcourse_rspec.rbの1つに次のコードを持っています

...「コースを有効にした後にアクティブなコースを確認する」 do 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コンソールでこれを行うと、正常に動作します。

ご協力いただきありがとうございます。

4

1 に答える 1

0

testモードまたはモードでレールコンソールを実行していdevelopmentますか? アプリケーションをテストおよび開発するためのレールは、異なるデータベースを使用することに注意してください。テストの前に、すべてのレコードが準備され、データベースに保存されていることを確認してください。この目的のために、フィクスチャまたはファクトリ (factory_girlたとえば) を使用できます。

ps。代わりに、どちらが読みやすいactive_courses.length.should eql 1かを使用できますactive_courses.should have(1).item

于 2012-05-28T21:33:52.213 に答える