我刚刚使用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
感谢您的帮助,
安东尼
答案 0 :(得分:1)
发现了这个问题:
let(:article1) { FactoryGirl.create(article) }
必须是
let(:article1) { FactoryGirl.create(:article) }