Ответ 1
Вызов FactoryGirl.find_definitions
сразу после require 'factory_girl_rails'
исправил аналогичную проблему для меня.
См. Невозможно запустить factory_girl под rails 3.0.5, неожиданный tCONSTANT
Имея много проблем с получением всех уток в правильном порядке с FactoryGirl.
Настройте приложение минималистских рельсов (3.0.11), factory_girl_rails (1.4.0), factory_girl (2.3.2) и огуречные рельсы (1.2.1) и ruby-1.8.7-p352.
Тест огурца:
Feature: a
Scenario: test factory-girl
Given the following user exists:
| name | email |
| Brandon | [email protected] |
Результат:
cucumber
Using the default profile...
"Adam Advertiser"
"[email protected]"
#<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 | [email protected] |
**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
Казалось бы, проблема с загрузкой. Поблагодарите любую помощь, чтобы получить это право. С уважением Росс
функции /Factories.rb:
FactoryGirl.define do
factory :user do
name 'Adam Advertiser'
email '[email protected]'
end
end
pp FactoryGirl.create(:user)
require 'factory_girl/step_definitions'
Мои функции/поддержка/env.rb:
require 'pp'
require 'cucumber/rails'
require 'factory_girl_rails'
My 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
Вызов FactoryGirl.find_definitions
сразу после require 'factory_girl_rails'
исправил аналогичную проблему для меня.
См. Невозможно запустить factory_girl под rails 3.0.5, неожиданный tCONSTANT
Я новичок в FactoryGirl, и я столкнулся с аналогичной ошибкой, как упоминалось в этом сообщении. Ошибка, с которой я столкнулся, была
ArgumentError:
Not registered: client
Factory setup:
/spec/factories.rb
Factory.define :user do |f|
f.email { Faker::Internet.email }
f.first_name { Faker::Name.first_name }
f.last_name { Faker::Name.last_name }
f.phone { Faker::PhoneNumber.phone_number }
f.password "foobar"
end
/spec/factories/users.rb - Содержит дочерние фабрики для: пользователя
Factory.define :client, :parent => :user do |client|
client.email { Factory.next(:client_email) }
client.password "password"
client.password_confirmation "password"
end
Я запускал спецификацию, используя следующую команду:
app_root$ RAILS_ENV=custom_test bundle exec rspec spec/controllers/users_controller_spec.rb
Благодаря @Ross. Отображенный файл Gem нажал на меня, что не хватало.
Спасибо.
Я решил эту проблему просто добавить эти строки в свой spec_helper:
require 'factory_girl'
FactoryGirl.find_definitions
В соответствии с этим ответом добавление FactoryGirl.find_definitions
будет работать, но добавление require 'rails_helper'
должно устранить необходимость в этом, если вы этого еще не сделали.