如何使用 Rails 5.0.1 设置factory_girl_rails



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

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

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

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

感谢您的帮助,

安东尼

发现了问题:

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

必须是

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

最新更新