Rspec.Undefined方法`有效吗?' for:user:Symbol

时间:2014-12-18 16:12:19

标签: ruby-on-rails rspec

我尝试为用户 - 工厂创建测试。但是当我运行测试时,' rspec'给我一个错误

Failure/Error: expect(:user).to be_valid
 NoMethodError:
   undefined method `valid?' for :user:Symbol

这是我的user_spec.rb

require 'rails_helper'

RSpec.describe do
  it "has a valid factory" do
    user = FactoryGirl.create(:user)
    expect(:user).to be_valid
  end
end

这是用户工厂(有' faker' gem)

FactoryGirl.define do

  factory :user do
    email Faker::Internet.email
    password Faker::Internet.password(8)
  end

end

如何修复以及为什么这种方法不起作用?

抱歉我的英文不好

1 个答案:

答案 0 :(得分:2)

这是一个修复:

RSpec.describe do
  it "has a valid factory" do
    user = FactoryGirl.create(:user)
    expect(user).to be_valid
  end
end

您将符号:user作为参数传递给expect(:user),您不应该这样做。您应该传递已创建的局部变量user,并将其传递给expect(user)