Я использую Ruby on Rails 3.0.10, RSpec 2 и FactoryGirl.У меня есть следующий сценарий:
В файле models/user_spec.rb
у меня есть
describe User do
let(:user) { Factory(:user) }
it "should have a 'registered' authorization do
user.authorization.should == "registered"
end
end
В файле factories/user.rb
у меня есть
FactoryGirl.define do
factory :user, :class => User do |user|
user.authorization 'registered'
end
end
В user.rb
файл, который у меня есть:
class User < ActiveRecord::Base
DEFAULT_AUTHORIZATION = 'registered'
validates :authorization,
:inclusion => {
:in => Authorization.all.map(&:name),
:message => "authorization is not allowed"
},
:presence => true
before_validation :fill_user_create, :on => :create
private
def fill_user_create
self.authorization = Authorization::DEFAULT_AUTHORIZATION
end
end
Когда я запускаю команду rspec
, я получаю следующую ошибку :
User should have a default 'registered' Authorization
Failure/Error: let(:user) { Factory(:user) }
ActiveRecord::RecordInvalid:
Validation failed: Users authorization is not allowed
Что именнопроблема и как я могу решить это?
BTW : В файле models/user_spec.rb
я могу использовать что-то вроде следующего
let(:user) { User.create }
и это будет работать, но Я предпочитаю использовать камень FactoryGirl . О чем вы советуетесь?