我正在运行 rails 3.0、rspec 2.0 和 factory_girl。这是我正在使用的简化方案:用户一次只能订阅一个计划
# user.rb
class User < ActiveRecord::Base
has_one :plan
attr_accessible :login, :plan_id
end
# plan.rb
class Profile < ActiveRecord::Base
attr_accessible :plan
end
# user_factory.rb
Factory.define :user do |u|
u.login "test"
u.association :plan
end
#plan_factory.rb
Factory.define :plan do |p|
p.name "plan1"
end
当我运行 rspec spec/models/user_spec.rb 我得到这个错误:
失败/错误:user = Factory(:user) SQLite3::ConstraintException: users.plan_id 可能不是 NULL
#spec/models/user_spec.rb
require File.dirname(__FILE__) + '/../spec_helper'
describe User do
it "should be valid" do
user = Factory(:user)
#User.new.should be_valid
user.should be_valid
end
end
我做错了什么?我被这个非常简单的场景困住了,这非常令人沮丧。那时BDD让我慢下来!