factory_girl_rails & Cucumber :: undefined - PullRequest
       16

factory_girl_rails & Cucumber :: undefined

1 голос
/ 06 декабря 2011

Возникли проблемы с выполнением этой работы. Кажется, это было проблемой для других, и я думаю, что следовал всем советам.

Я настроил урезанное приложение rails 3 .0.14, чтобы оно просто включало огурцы-rails & factory_girl_rails, но пока не идет. Я ожидаю, что я делаю что-то глупое!

Выполнение теста cuc, приведенного ниже, дает следующее:

Scenario: test factory-girl        # features/users.feature:3
  Given the following user exists: # features/users.feature:4
    | name    | email               |
    | Brandon | brandon@example.com |
    Undefined step: "the following user exists:" (Cucumber::Undefined)

Была создана фабрика пользователей, в которой я уверен, с небольшим выводом 'pp'. Был бы очень признателен за любую помощь, чтобы получить это отсортировано.

Ross

Настройка

env.rb: фрагмент

require 'pp'
require 'cucumber/rails'

require 'factory_girl_rails'
require 'factory_girl/step_definitions'

функции / поддержка / factories.rb:

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

Особенности огурца / user.feature:

Feature: a
  Scenario: test factory-girl
    Given the following user exists:
    | name    | email               |
    | Brandon | brandon@example.com |

1 Ответ

1 голос
/ 06 декабря 2011

Проблема здесь в том, что вам нужно получить фабрику, требуемую до , требующую «factory_girl / step_definitions», потому что в step_definitions есть метапрограммирование, которое должно знать о вашей фабрике. Вы могли бы явно потребовать factories.rb в env.rb, но это в конечном итоге приведет к ошибке определения дубликата, так как огурец будет повторно требовать factories.rb.

Вам нужно удалить требование step_definitions из env.rb - что сделает это слишком рано - и поместить его в конец factories.rb, или создать оболочку, для которой сначала нужны фабрики (для чего понадобится проживать где-то, что огурец не требует автоматически), а затем step_definitions.

...