我尝试为用户 - 工厂创建测试。但是当我运行测试时,' 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
如何修复以及为什么这种方法不起作用?
抱歉我的英文不好
答案 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)
。