0
我試圖在我的應用程序中設置測試,並且遇到了RSpec,FactoryGirl和Mongoid的問題。我有以下工廠:FactoryGirl + Mongoid + RSpec未正確構造對象。
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查看完整的堆棧跟蹤?
@Max,我不知道你是如何定義角色的,但是你可以通過'@user.role = something'在控制檯中驗證它。無論在控制檯中的任何作品都可以在工廠中使用。 –
我發現了這個問題。這是一個簡單的錯字。我正在驗證字段'user'而不是字段'role'。你知道如何從rspec獲得完整的堆棧跟蹤嗎?我可能早就注意到我能夠查看堆棧跟蹤。 – Max
@Max,只需在您的rspec命令中添加'-b'參數,這意味着回溯。 –