我刚刚用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) }