ruby-on-rails - Rspec工厂少女faker不接受专栏

标签 ruby-on-rails ruby rspec factory-bot rspec-rails

我将 RSpec 与 FactoryGirl 和 Faker 一起使用。我有以下错误:

myrailsexp/spec/factories/contacts.rb:5:in `block (2 levels) in <top (required)>': undefined method `first_name' for #<FactoryGirl::Declaration::Implicit:0x007fa205b233c0> (NoMethodError)

这是模型 app/models/contact.rb:

class Contact < ActiveRecord::Base

  attr_accessible :first_name, :last_name

  validates :first_name, presence: true
  validates :last_name, presence: true

end

规范/模型/contact_spec.rb

require 'rails_helper'

RSpec.describe Contact, :type => :model do
  it "has a valid factory" do 
    Factory.create(:contact).should be_valid 
  end
  it "is invalid without a first_name" 
  it "is invalid without a last_name" 
  it "returns a contact's full_name as a string"
end

规范/工厂/contacts.rb

require 'faker'

FactoryGirl.define do
  factory :contact do
    f.first_name { Faker::Name.first_name } 
    f.last_name { Faker::Name.last_name }
  end

end

谢谢

最佳答案

这个

require 'faker'

FactoryGirl.define do
  factory :contact do
    f.first_name { Faker::Name.first_name } 
    f.last_name { Faker::Name.last_name }
  end

end

应该是

require 'faker'

FactoryGirl.define do
  factory :contact do |f|
    f.first_name { Faker::Name.first_name } 
    f.last_name { Faker::Name.last_name }
  end

end

还有这一行

Factory.create(:contact).should be_valid

应该是

FactoryGirl.create(:contact).should be_valid 

关于ruby-on-rails - Rspec工厂少女faker不接受专栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31660152/

相关文章:

mysql - rake db :migrate, 源和目标

ruby-on-rails - date.today Rails 2.3.9 的命名范围

ruby-on-rails - Heroku 上的不兼容编码正则表达式匹配(ASCII-8BIT 正则表达式与 UTF-8 字符串)

ruby-on-rails - 验证码无法访问 Rails

ruby - Mechanize 无法正确加载页面

Ruby——将散列解压缩到参数列表中

ruby - 如何使用 Ruby 在 RSpec 测试之间重新加载模块?

ruby-on-rails - Rspec+Rails : POST URL-parameter to controller

ruby-on-rails - 如何获取为特定模型类定义的所有 factory_girl 工厂?

ruby-on-rails - rails 如何渲染具有正确文件名的文件