【发布时间】:2011-08-27 06:58:11
【问题描述】:
我认为我的用户工厂正在构建中存在问题。我收到一条错误消息,提示密码不能为空,但它已明确设置在我的 factory.rb 中。有人看到我可能遗漏的任何东西吗?还是规范失败的原因?我为我的其他模型之一做了非常相似的事情,而且似乎很成功。我不确定这个错误是否是由设计引起的。
Rspec 错误
User should create a new instance of a user given valid attributes
Failure/Error: User.create!(@user.attributes)
ActiveRecord::RecordInvalid:
Validation failed: Password can't be blank
# ./spec/models/user_spec.rb:28:in `block (2 levels) in <top (required)>'
工厂.rb
Factory.define :user do |user|
user.name "Test User"
user.email "user@example.com"
user.password "password"
user.password_confirmation "password"
end
user_spec.rb
require 'spec_helper'
describe User do
before(:each) do
@user = Factory.build(:user)
end
it "should create a new instance of a user given valid attributes" do
User.create!(@user.attributes)
end
end
user.rb
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
end
【问题讨论】:
标签: ruby-on-rails ruby rspec devise factory-bot