我正在为用户模型中的一个方法编写rspec:
describe "#generate_password_reset_token!" do
subject { user }
let!(:user) { create(:user) }
it "changes the password_reset_token attribute" do
expect { user.generate_password_reset_token! }.to change { user.password_reset_token }
end
end
我进行了测试,结果显示
Failure/Error: let!(:user) {create(:user)}
ArgumentError:
Factory not registered: user
设置如下:
config.before(:all) do
FactoryGirl.reload
end
config.include FactoryGirl::Syntax::Methods
config.before(:suite) { DatabaseCleaner.strategy = :truncation }
config.before(:each) { DatabaseCleaner.start }
config.after(:each) { DatabaseCleaner.clean }
我正在使用轨道4。这里有什么问题?
您需要为用户创建一个工厂:
规范/工厂/用户.rb
FactoryGirl.define do
factory :user do
email 'example@email.com'
end
end
请参阅中的"定义工厂"http://www.rubydoc.info/gems/factory_girl/file/GETTING_STARTED.md