我正在尝试在我的应用中设置测试,并且我遇到了RSpec,FactoryGirl和Mongoid的问题。我有以下工厂:
FactoryGirl.define do
factory :user do |u|
u.name { Faker::Name.name }
u.email { Faker::Internet.email }
u.crypted_password { Faker::Lorem.characters(10) }
u.password_salt { Faker::Lorem.characters(10) }
u.role :user
end
end
我尝试在我的测试中使用这个工厂:
require 'spec_helper'
describe User do
it "has a valid factory" do
create(:user).should be_valid
end
end
但是我收到了这个错误:
1) User has a valid factory
Failure/Error: FactoryGirl.create(:user).should be_valid
NoMethodError:
undefined method `user' for #<User:0x007ff24a119b28>
# ./spec/models/user_spec.rb:5:in `block (2 levels) in <top (required)>'
我不知道导致此错误的原因。另外,有没有办法使用rspec查看完整的堆栈跟踪?
答案 0 :(得分:2)
此行有问题
u.role :user
我想您要将默认角色定义为&#34; user&#34;?然后不要使用符号或方法,而是使用字符串
u.role 'user'