ruby-on-rails - railstutorial.org - 未定义的方法 `Factory'

标签 ruby-on-rails factory-bot

我正在尝试关注 railstutorial.org,目前在第 7 章,您开始使用工厂:http://railstutorial.org/chapters/modeling-and-viewing-users-two#sec:tests_with_factories

我正在使用 Rails 3.0.1 和 ruby​​-1.9.2-p0

不过,我终其一生都无法通过 rspec 测试,我得到的错误是

Failures:
    1) UsersController GET 'show' should be successful
     Failure/Error: @user = Factory(:user)
     undefined method `Factory' for #<RSpec::Core::ExampleGroup::Nested_2::Nested_1:0x00000101cc5608>
 # ./spec/controllers/users_controller_spec.rb:9:in `block (3 levels) in <top (required)>'

我的 factory.rb 看起来像这样:
# By using the symbol ':user', we get Factory Girl to simulate the User model.
Factory.define :user do |user|
  user.name                  "Michael Hartl"
  user.email                 "mhartl@example.com"
  user.password              "foobar"
  user.password_confirmation "foobar"
end

这是我的 users_controller_spec.rb文件:
require 'spec_helper'

describe UsersController do
  render_views

  describe "GET 'show'" do
    before(:each) do
      @user = Factory(:user)
    end
    it "should be successful" do
      get :show, :id => @user
      response.should be_success
    end

这是我的 Gemfile,如果有帮助的话:
source 'http://rubygems.org'

gem 'rails', '3.0.1'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'gravatar_image_tag'

group :development do
  gem 'rspec-rails'
  gem 'annotate-models'
end

group :test do
  gem 'rspec'
  gem 'webrat'
  gem 'spork'
  gem 'factory_girl_rails'
end

最佳答案

也许你应该尝试新的语法(参见工厂女孩的 github readme)

FactoryGirl.define :user do |user|
  user.name                  "Michael Hartl"
  user.email                 "mhartl@example.com"
  user.password              "foobar"
  user.password_confirmation "foobar"
end

关于ruby-on-rails - railstutorial.org - 未定义的方法 `Factory',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3991052/

相关文章:

ruby - FactoryBot 构建具有特征的对象列表

ruby-on-rails - RSpec Controller 测试嵌套资源上的 PUT 更新操作

ruby-on-rails - FactoryGirl,has_one关联和验证失败

ruby-on-rails - FactoryGirl 和 Rspec 测试中 attributes_for 的含义

ruby-on-rails - 测试重新调度器

ruby-on-rails - 如何在 Mongoid 中保存 embeds_many 关系?

css - Ruby 无法找到 Foundation/foundation-global?

ruby-on-rails - 我是否正确使用工厂?

ruby-on-rails - 无法使用 Rails 3 中的 send_file 函数读取文件

ruby-on-rails - Rails 通过 count 选取 has_many