我遇到了一个快速问题。我正在为user_spec页面获得一个“未定义的方法`Factory”。我相信我的语法不正确“let(:user){Factory(:user)}”。但是我无法想出一个有效的方法。
Failure/Error: let(:user) { Factory(:user) }
NoMethodError:
undefined method `Factory' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007fc7ac31e6a8>
如果有人可以查看我的代码并帮助我,我会很感激,因为我几乎已经完成了密码重置测试。
user_spec.rb:
require 'spec_helper'
describe User do
describe "#send_password_reset" do
let(:user) { Factory(:user) }
it "generates a unique password_reset_token each time" do
user.send_password_reset
last_token = user.password_reset_token
user.send_password_reset
user.password_reset_token.should_not eq(last_token)
end
it "saves the time the password reset was sent" do
user.send_password_reset
user.reload.password_reset_sent_at.should be_present
end
it "delivers email to user" do
user.send_password_reset
last_email.to.should include (user.email)
end
end
end
答案 0 :(得分:8)
Factory Girl方法如下:
let(:user) { FactoryGirl.create(:user) }
答案 1 :(得分:7)
将Factory
替换为FactoryGirl
,他们将其更改为消除歧义并让有用的Factory
命名空间可用。