我创建RSpec的测试示例应用程序,我跟着下面的步骤中的Gemfile:
gem "rspec-rails", :group => [:test, :development]
group :test do
gem "factory_girl_rails"
gem "capybara"
gem "guard-rspec"
end
然后,执行下面的步骤:
- 束。
- 轨摹RSpec的:安装。
- MKDIR规格/支规格/型号投机/路由。
补充说:“需要水豚/ rspec的”我的spec_helper文件
创建为下面的样品测试:
require 'spec_helper'
describe "Users" do
describe " List users" do
it "List all users" do
get users_path
page.has_content?('List Users')
end
end
end
但它不工作,提示以下错误:
undefined local variable or method `page'
*我怀疑我是不是正确配置的水豚,让我知道,配置水豚的正确方法。
既然你没有指定在你的Gemfile的水豚一个版本,我假设你已经有了版本>= 2.0
,这意味着使用任何测试page
应该在规范去下/ features目录。
看一看有关更多信息,以下链接:
- RSpec的护栏和水豚2.0:你需要知道什么
- RSpec的护栏宝石水豚页
如果你不希望使用规格/ features目录,你应该能够标记测试的feature
在以下方式:
require 'spec_helper'
describe "Users" do
describe " List users", type: :feature do
it "List all users" do
get users_path
page.has_content?('List Users')
end
end
end
包括水豚DSL符合规范帮手后得到工作
config.include Capybara::DSL
它值得一试的新水豚DSL集成测试(请注意功能目录):
# spec/features/user_list_spec.rb
require 'spec_helper'
feature 'User list' do
scenario 'List all users' do
visit users_path
expect(page).to have_content 'List Users'
end
end
我写了一个博客帖子上发一些详细资料端至端测试使用RSpec集成测试和水豚用RSpec的2.0期望的语法,与水豚DSL沿着feature/scenarios
。
你也可以只添加到您的spec_helper.rb:
require 'capybara/rspec'