user_spec上的未定义方法“Factory”

时间:2013-03-06 14:10:36

标签: ruby-on-rails factory-bot

我遇到了一个快速问题。我正在为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

2 个答案:

答案 0 :(得分:8)

Factory Girl方法如下:

let(:user) { FactoryGirl.create(:user) }

答案 1 :(得分:7)

Factory替换为FactoryGirl,他们将其更改为消除歧义并让有用的Factory命名空间可用。