2010-11-29 15 views
7

użyję RSpec z Factory girl w moim Rails3 Project. Mam zainstalowany Dziewczyna z fabryki, ale to nie znajdziesz factorys mam ten błądRSpec nie może znaleźć Factorys od Factorygirl

Failure/Error: Factory.build(:user).should_be valid 
No such factory: user 

niespełniającego/fabryki/user_factory.rb:

Factory.define :user do |u| 
    u.username 'otto' 
end 

niespełniającego/spec_helper.rb

ENV["RAILS_ENV"] ||= 'test' 
require File.expand_path("../../config/environment", __FILE__) 
require 'rspec/rails' 
require 'factory_girl' 

Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} 

RSpec.configure do |config| 
    config.mock_with :rspec 
    config.fixture_path = "#{::Rails.root}/spec/fixtures" 
    config.use_transactional_fixtures = true 
end 

Gemfile:

group :development, :test do 
    gem 'webrat' 
    gem "cucumber-rails" 
    gem "rspec-rails" 
    gem "rspec" 
    gem "autotest" 
    gem 'factory_girl' 
end 

Dzięki

+2

Problem dotyczy fabryki_girl. Kiedy używam factory_girl_rails wszystko działa poprawnie. – ThreeFingerMark

Odpowiedz

10

Czy masz następujące linie w config\application.rb:

# Configure generators values. 
config.generators do |g| 
    g.test_framework :rspec, :fixture => true 
    g.fixture_replacement :factory_girl, :dir=>"spec/factories" 
end 
+0

Dziękuję za pomoc. Dodałem to w config \ application.rb, ale mam ten sam błąd. – ThreeFingerMark

5

dodaj „factory_girl_rails” Gem do Gemfile pod: testu: grupy rozwoju, co następuje:

group :development, :test do 
    gem 'webrat' 
    gem "cucumber-rails" 
    gem "rspec-rails" 
    gem "rspec" 
    gem "autotest" 
    gem 'factory_girl' 
    gem 'factory_girl_rails' 
end 

W Rails 3, musisz dodać ten klejnot, aby działał. Mam nadzieję, że to pomoże.

+2

... i w rzeczywistości możesz usunąć linię factory_girl, jeśli chcesz. Jest to zależność factory_girl_rails, więc zostanie ona dołączona automatycznie. –

+0

Paul ma rację. Nie potrzebujesz tej linii – GreenPlastik

2

próbowałeś dodając coś podobnego

Dir[Rails.root.join("spec/factories/**/*.rb")].each {|f| require f} 

w spec_helper? Który zrobił to dla mnie

+0

, to naprawiło to dla mnie - inne rozwiązanie jej nie naprawiło – Markus