FactoryGirl:工厂未注册:user(ArgumentError)

Ros*_*oss 15 ruby cucumber factory-bot

使用FactoryGirl以正确的顺序获取所有鸭子很麻烦.

设置极简主义的rails应用程序(3.0.11),factory_girl_rails(1.4.0),factory_girl(2.3.2)和cucumber-rails(1.2.1)以及ruby-1.8.7-p352.

黄瓜测试是:

Feature: a
  Scenario: test factory-girl
    Given the following user exists:
    | name    | email               |
    | Brandon | brandon@example.com |
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

cucumber 
Using the default profile...
"Adam Advertiser"
"a@b.com"
#<User id: nil, name: nil, created_at: nil, updated_at: nil, email: nil>
Feature: a

  Scenario: test factory-girl        # features/users.feature:2
    Given the following user exists: # factory_girl-2.3.2/lib/factory_girl/step_definitions.rb:100
      | name    | email               |
      | Brandon | brandon@example.com |
      **Factory not registered: user (ArgumentError)**
      features/users.feature:3:in `Given the following user exists:'

Failing Scenarios:
cucumber features/users.feature:2 # Scenario: test factory-girl

1 scenario (1 failed)
1 step (1 failed)
0m0.107s
Run Code Online (Sandbox Code Playgroud)

这似乎是一个加载序列问题.非常感谢任何帮助以实现这一目标.关心罗斯

功能/ Factories.rb因此:

FactoryGirl.define do
    factory :user do
        name 'Adam Advertiser'
        email 'a@b.com'
    end
end
pp FactoryGirl.create(:user)

require 'factory_girl/step_definitions'
Run Code Online (Sandbox Code Playgroud)

我的功能/支持/ env.rb是:

require 'pp'
require 'cucumber/rails'

require 'factory_girl_rails'
Run Code Online (Sandbox Code Playgroud)

我的GemFile是:

source 'http://rubygems.org'

gem 'rails', '3.0.11'

gem 'sqlite3'


group :development, :test do

    gem 'cucumber-rails'
    gem 'factory_girl_rails'     # rails 3 version

end
Run Code Online (Sandbox Code Playgroud)

pag*_*gid 33

FactoryGirl.find_definitionsrequire 'factory_girl_rails'为我修复了类似的问题后立即调用.

请参阅无法在rails 3.0.5下运行factory_girl,意外的tCONSTANT