RSpec找不到Factorygirl的Factorys

Thr*_*ark 7 bdd rspec ruby-on-rails factory-bot

我将在我的Rails3项目中使用RSpec和Factory girl.我已安装工厂女孩,但它没有找到factorys我有这个错误

Failure/Error: Factory.build(:user).should_be valid
No such factory: user
Run Code Online (Sandbox Code Playgroud)

spec/factories/user_factory.rb:

Factory.define :user do |u|
  u.username 'otto'
end
Run Code Online (Sandbox Code Playgroud)

投机/ 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
Run Code Online (Sandbox Code Playgroud)

的Gemfile:

group :development, :test do
   gem 'webrat'
   gem "cucumber-rails"
   gem "rspec-rails"
   gem "rspec"
   gem "autotest"
   gem 'factory_girl'
end
Run Code Online (Sandbox Code Playgroud)

谢谢

nat*_*vda 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
Run Code Online (Sandbox Code Playgroud)


小智 5

将'factory_girl_rails'gem添加到您的:test,:development groups下的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
Run Code Online (Sandbox Code Playgroud)

在Rails 3中,您需要添加该gem以使其工作.希望能帮助到你.

  • ...实际上,如果您愿意,可以删除factory_girl行.它是factory_girl_rails的依赖项,因此将自动包含在内. (2认同)