ruby-on-rails-3 - Rails 3.2,RSpec,工厂女孩 : NameError: uninitialized constant Factory

标签 ruby-on-rails-3 testing rspec ruby-on-rails-3.2 factory-bot

我一直在关注 this Rails 测试的介绍,我遇到了一个我似乎无法找到解决方案的问题。我非常熟悉 Rails,但这是我第一次涉足测试。

无论如何,我有一个非常基本的模型测试,甚至没有完全实现,当我尝试运行 rspec spec/models/admin_spec.rb 时。我在 Admin has a valid factory 行中收到以下错误(完整代码如下)

Admin has a valid factory
 Failure/Error: Factory.create(:admin).should be_valid
 NameError:
   uninitialized constant Factory
 # ./spec/models/admin_spec.rb:6:in `block (2 levels) in <top (required)>'

我假设 FactoryGirl 由于某种原因没有被加载,但我的印象是它应该被自动加载。下面是我的 Gemfile 中的完整代码,/spec/models/admin_spec.rb 和/spec/factories/admins.rb

非常感谢您的帮助

gem 文件

source 'https://rubygems.org'

gem 'rails', '3.2.2'
gem 'mysql2'
gem 'jquery-rails'
gem 'haml'
gem 'bcrypt-ruby', :require => 'bcrypt'
gem 'bootstrap-sass', '~> 2.0.2'
gem 'capistrano'
gem 'json'
gem "paperclip", '~>3.0'
gem 'airbrake'
gem 'acts_as_list'
gem 'nested_form', :git => 'https://github.com/ryanb/nested_form.git'
gem 'bootstrap-wysihtml5-rails'
gem 'will_paginate', '~> 3.0'
gem 'bootstrap-will_paginate'
gem 'thinking-sphinx', '2.0.10'

gem 'sass-rails', '~> 3.1'
gem 'coffee-rails'
gem 'uglifier'
# gem 'compass'

group :development do
  gem 'awesome_print'
  gem 'wirble'
end

group :development, :test do
  gem 'rspec-rails'
  gem 'factory_girl_rails'
end

group :production do
  gem 'execjs'
  gem 'therubyracer'
end

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
  gem 'faker'
  gem 'capybara'
  gem 'guard-rspec'
  gem 'launchy'
end

/spec/factories/admin.rb

require 'faker'

FactoryGirl.define do
  factory :admin do |f|
    f.name Faker::Name.name
    f.email Faker::Internet.email
  end
end

/spec/models/admin_spec.rb

require 'spec_helper'

describe Admin do
  it "has a valid factory" do
    Factory.create(:admin).should be_valid
  end
  it "is invalid without a name"
  it "is invalid without an email"
end

最佳答案

它应该是FactoryGirl.create。显然 Factory 已被弃用,现在已被删除,请查看您提供的链接中的评论 :)

关于ruby-on-rails-3 - Rails 3.2,RSpec,工厂女孩 : NameError: uninitialized constant Factory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11875634/

相关文章:

ruby-on-rails - 如何测试 RSpec in Rails 中的 204 响应?

ruby-on-rails - 为什么不能在 Controller 测试中使用路由器路径?

Ruby Rspec 在 Windows 上输出文字转义字符

ruby-on-rails - 将附加参数传递给 Rails 生成模型?

ruby-on-rails - Rails 默认数据

ruby-on-rails - ruby rails 3 : after destroy method to destroy object if there is no more related objects in the system?

angular - [ Angular 7+] : How to unit test a service inside another service spec?

python - 如何测试某个日志消息是否记录在 Django 测试用例中?

ruby-on-rails - 从 Rails 1.2.3 应用程序升级时如何更新迁移?

testing - 有没有一种方法可以对 Jasmine 测试进行分类并管理排除项