我正在阅读Hartl的RoR教程,现在我正在进行集成测试。按照指示我修改了.autotest:
require 'autotest/growl'
require 'autotest/fsevent'
require "autotest/restart"
Autotest.add_hook :initialize do |autotest|
autotest.add_mapping(/^spec\/requests\/.*_spec\.rb$/) do
autotest.files_matching(/^spec\/requests\/.*_spec\.rb$/)
end
end
我的设置:
Z-Kidds-MacBook-Air:sample_app zkidd$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.2.0]
Z-Kidds-MacBook-Air:sample_app zkidd$ rails -v
Rails 3.1.3
我的错误是:
/Users/zkidd/.rvm/rubies/ruby-1.9.2-p290/bin/ruby -rrubygems -S /Users/zkidd/.rvm/gems/ruby-1.9.2-p290/gems/rspec-core-2.6.4/bin/rspec --tty '/Users/zkidd/rails_projects/sample_app/spec/controllers/pages_controller_spec.rb' '/Users/zkidd/rails_projects/sample_app/spec/requests/layout_links_spec.rb'
Exception encountered: #<SyntaxError: /Users/zkidd/rails_projects/sample_app/spec/requests/layout_links_spec.rb:7: syntax error, unexpected ':', expecting ')'
response.should have_selector('title,' :content => 'Home')
^
/Users/zkidd/rails_projects/sample_app/spec/requests/layout_links_spec.rb:7: syntax error, unexpected ')', expecting keyword_end>
backtrace: . . . .
我看到错误中有一个小胡萝卜:内容说autotest期待“)”而不是冒号。但该教程正是我所写的具体内容。这是layout_links_spec.rb
require 'spec_helper'
describe "LayoutLinks" do
it "should have a Home page at '/'" do
get '/'
response.should have_selector('title,' :content => 'Home')
end
it "should have a Contact page at '/contact'" do
get '/contact'
response.should have_selector('title,' :content => "Contact")
end
it "should have an About page at '/about'" do
get '/contact'
response.should have_selector('title,' :content => "About")
end
it "should have a Help page at '/help'" do
get '/help'
response.should have_selector('/title' :content => "Help")
end
end
答案 0 :(得分:1)
在您发布的代码中,所有行都是
response.should have_selector('title,' :content => 'Home')
应该是
response.should have_selector('title', :content => 'Home')
(逗号在字符串之外)。
对于上一次测试,它也是'title'
而不是'/title'