4

我正在尝试按照本教程学习 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

4

1 回答 1

3

将您的测试放在requests目录而不是views.

于 2012-07-08T09:32:15.277 回答