factory_girl_rails&黄瓜::未定义

时间:2011-12-06 09:06:20

标签: ruby-on-rails-3 cucumber factory-bot

让这项工作有问题。似乎对其他人来说这是一个问题,我想我已经遵循了所有的建议。

我已经设置了一个精简的导轨3 .0.14应用程序,只包括黄瓜导轨& 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'输出。 真的很感激有任何帮助来解决这个问题。

罗斯

设置

env.rb:snippet

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)

Cucumber features / user.feature:

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

1 个答案:

答案 0 :(得分:1)

这里的问题是你必须在要求'factory_girl / step_definitions'之前得到你的工厂,因为step_definitions中有元编程需要知道你的工厂。您可以明确要求env.rb中的factories.rb,但这最终会产生重复的定义错误,因为黄瓜将重新需要factory.rb。

你需要从env.rb中删除对step_definitions的要求 - 这会使它太早发生 - 并将它放在factories.rb的底部,否则创建一个首先需要工厂的包装器(需要驻留在黄瓜不会自动要求的地方,然后是step_definitions。