7

Rails3プロジェクトでFactorygirlでRSpecを使用します。ファクトリーガールをインストールしましたが、このエラーが発生したファクトリーが見つかりません

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

spec / factorys / user_factory.rb:

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

spec / 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

ありがとう

4

4 に答える 4

10

次の行がありますか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
于 2010-11-29T12:22:14.640 に答える
5

次のように、「factory_girl_rails」gemを:test、:developmentグループの下のGemfileに追加します。

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

Rails 3では、そのgemを追加して機能させる必要があります。それが役に立てば幸い。

于 2010-12-09T06:15:26.927 に答える
2

次のようなものを追加してみましたか

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

spec_helperで?それは私のためにそれをしました

于 2010-12-16T15:11:02.603 に答える
0

rspec構成がspec/supportの下ですべてをロードしている場合は、ファクトリディレクトリをそこに置くことができます。

この投稿を参照してください:http://www.codeography.com/2010/04/30/using-factory_girl-and-rspec-with-rails-3.html

于 2011-06-17T08:44:54.180 に答える