Настройка Factory Girl с тестом :: Юнит и Муста - PullRequest
16 голосов
/ 21 июля 2009

Я пытаюсь настроить Factory Girl с помощью Test :: Unit и Shoulda в Ruby on Rails. Я установил гем, создал свой заводской файл в каталоге test / factories и создал мой spec-файл в каталоге test / models. Текущая ошибка, которую я получаю: «ArgumentError: Нет такой фабрики: test», что заставляет меня поверить, что файл test_factory.rb не загружается? Любая идея относительно того, что я должен изменить?

Вот мои файлы.

#test/factories/test_factory.rb
Factory.define :test do |t|  
  t.name 'test_spotlight'  
  t.label 'test spotlight label'  
end

и

#test/modes/test_spec.rb
require 'test_helper'
require 'factory_girl'
class TestTest < Test::Unit::TestCase
  def setup
    @test = Factory.build(:test)
  end

  context "A test" do
    should "save with the minimum requirements" do
      assert @test.save
    end
  end 
end 

Ответы [ 13 ]

0 голосов
/ 09 марта 2010

Интересно. У меня была похожая проблема при попытке заставить огурец работать с factory_girl. Первоначально я настроил factory_girl для поиска ('config.gem'), но не загружен в среду огурца и полностью требуется в 'functions / support / env.rb', так же, как огурец делает для webrat и т. Д. работать, когда я явно сказал factory_girl найти его определения, как предложил Кенни выше.

Когда я удалил оператор require из env.rb и полностью требуемый factory_girl в среде огурцов, эффект исчез, и factory_girl работала из коробки.

Так что на самом деле, похоже, вопрос в том, когда (или в каком контексте) загружается factory_girl.

0 голосов
/ 22 июля 2009

Вместо того, чтобы называть ваш фабричный файл test_factory.rb, попробуйте назвать его factory.rb

0 голосов
/ 22 июля 2009

Вы пытались переместить

require 'factory_girl'

на test / test_helper.rb ?

Заводской механизм автоматической загрузки может зависеть от того, где вызывается запрос. Это может быть попытка найти фабрики * test / models / factory / ** вместо * test / factory / **

...