如何使用Rails 5.0.1设置factory_girl_rails

时间:2017-01-07 12:46:53

标签: factory-bot ruby-on-rails-5

我刚刚使用Rails 5.0.1设置了一个新的Rails项目

我将factory_girl_rails添加到Gemfile中的开发和测试组。

然后我在spec / factories文件夹中创建了一个文章工厂:

FactoryGirl.define do
  factory :article do
    title { Faker::Lorem.sentence }
    body { Faker::Lorem.paragraph }
  end
end

我的功能规格如下:

require 'rails_helper'

feature "guest views articles" do

  let(:article1) { FactoryGirl.create(article) }
  let(:article2) { FactoryGirl.create(article) }

  scenario "by visiting index page" do
    visit articles_path
    expect(page).to have_content article1.title
    expect(page).to have_content article2.title
  end
end

但是,当我运行规范时,我收到此错误消息:

Failures:                                                                                

  1) guest views articles by visiting index page                                         
     Failure/Error: let(:article1) { FactoryGirl.create(article) }                       

     NameError:                                                                          
       undefined local variable or method `article' for #    <RSpec::ExampleGroups::GuestViewsArticles:0x007fe957fad078>                                                              
   Did you mean?  article2                                                           
                  article1                                                           
   # ./spec/features/guest_views_articles_spec.rb:5:in `block (2 levels) in <top (required)>'                                                                                   
   # ./spec/features/guest_views_articles_spec.rb:10:in `block (2  levels) in <top (required)>'

从错误消息中,似乎文章工厂未定义或识别。在设置文章工厂时我忘记了什么吗?

我的存储库位于:

https://github.com/acandael/personalsite/tree/first_test

感谢您的帮助,

安东尼

1 个答案:

答案 0 :(得分:1)

发现了这个问题:

let(:article1) { FactoryGirl.create(article) }

必须是

let(:article1) { FactoryGirl.create(:article) }