我正在尝试按照本教程学习 RoR ,目前我在第 3 章。如果我逐行遵循,本教程可以正常工作。但是,本教程中使用的命令会抑制默认测试的生成。当我试图保留它们并可能在我的项目中使用它们时,我总是在某个地方碰壁。
你能告诉我我做错了什么吗?
$ rails new myproject
$ cd myproject/
$ echo "gem 'rspec'" >> Gemfile
$ echo "gem 'rspec-rails'" >> Gemfile
$ echo "gem 'capybara'" >> Gemfile
$ bundle install
$ bundle --binstubs
$ rails generate rspec:install
$ rails generate controller StaticPages home help about
然后我编辑spec/views/static_pages/home.html.erb_spec.rb
文件,以测试 capybara 是否有效:
require 'spec_helper'
#require 'capybara'
#require 'capybara/rails'
#require 'capybara/rspec'
describe "static_pages/home.html.erb" do
it 'should have a right title' do
visit '/static_pages/home'
page.should have_selector('title', :text => 'Home')
end
end
显然,在这一点上运行bin/rspec
以失败告终。好吧,失败是可以预料的。但是,其中一个失败的原因更令人担忧:
1) static_pages/home.html.erb should have a right title
Failure/Error: visit '/static_pages/home'
NoMethodError:
undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_5:0x00000003dfd268>
# ./spec/views/static_pages/home.html.erb_spec.rb:7:in `block (2 levels) in <top (required)>'
AFAIK 是 Capybara 的一部分的visit
方法尚未被发现。取消注释三个额外的要求home.html.erb_spec.rb
不会改变结果中的任何内容。
任何想法我做错了什么?还是我应该做的更好?
导轨版本:3.2.6