ruby - FactoryGirl 未在构建中传递参数

标签 ruby testing rspec factory-bot

我有一个 ruby​​ 应用程序,正在使用 rspec 和factorygirl,但我在构建工厂时遇到了麻烦。当我运行规范时,我收到初始化中所需关键字的 ArgumentError: Missing keywords 。如果我显式传递它们,错误将更改为参数 0 为 2 的数量错误

感谢您对此提供的任何帮助。

spec/models/player_spec.rb

require 'spec_helper'

describe Player do

  it 'has a valid factory' do
    player = build(:player) # or build(:player, name: 'testname', password: 'testpw')
  end
end

spec/factories/player.rb

FactoryGirl.define do
  factory :player do
    name     { 'Testname' }
    password { 'testpass' }
  end
end

models/player.rb

def initialize(name:, password:)
  @id       = object_id
  @name     = name
  @password = password
end

最佳答案

更改您的spec/factories/player.rb:

FactoryGirl.define do
  factory :player do
    name      'Testname'
    password  'testpass'

    initialize_with { new(name:name, password: password) }
  end
end

您可以找到文档here尽管在本例中没有明确使用。

关于ruby - FactoryGirl 未在构建中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30679053/

相关文章:

c++ - Git 将更新的 master merge 到一个分支

testing - 如何计算jmeter中的总响应时间?

ruby - 在 Rspec 中测试非静态方法?

ruby - rspec:如何测试 redis#subscribe 代码?

css - 如何在 Rails gem 中打开文本文件并将其输出插入到 View 中?

ruby - 如何跨新行拆分字符串并保留空行?

ruby - 如何从 GitHub 安装 Ruby gem 并使其在 IRB 中运行?

ruby - 通过迭代嵌套哈希来构建新哈希

针对多种类型测试 QuickCheck 属性?

ruby-on-rails - Rspec Factory Girl 模型单数复数(未初始化常量 [ModelName])