私は次の仕様を持っています:
it "saves a default 'active' status if not specified" do
if User.count <= 0
user = User.new(FactoryGirl.attributes_for(:user))
user.save
end
project = FactoryGirl.create(:project, :status => nil)
project.status.should eq("active")
end
このFactoryGirlオブジェクトを使用して:
factory :project do
title "A short title"
description "A short description"
parent_id 1
pm_id 1
status "active"
end
プロジェクトのモデルは、関連付けの存在を検証します...したがって、テストする前に、テストデータベース内にユーザーを保存したいと思います。ただし、上記のコードはDBに何も保存しません。
代わりに、before(:all)ブロックを追加すると:
before(:all)do @user = User.new(FactoryGirl.attributes_for(:user))@ user.save end
新しいユーザーがデータベースに保存されます。なんで?