我有以下规格:
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
该项目的模型验证了关联的存在......所以,在测试之前,我想在测试数据库中保存一个用户。但是上面的代码并没有在数据库中保存任何东西。
相反,如果我添加一个 before(:all) 块:
before(:all) do @user = User.new(FactoryGirl.attributes_for(:user)) @user.save end
一个新用户被保存到数据库中。为什么?