我是Ruby on rails的新手。目前正在使用maverick的10.9.3,Rails 4.当我尝试运行rspec命令时,我收到以下错误。
这是我得到的错误:
rspec ./spec/controllers/pages_controller_spec.rb:35 # PagesController GET 'about' should have the right title
rspec ./spec/controllers/pages_controller_spec.rb:24 # PagesController GET 'contact' should have the right title
rspec ./spec/controllers/pages_controller_spec.rb:11 # PagesController GET 'home' should have the right title
我的Gemfile包括:
group :development, :test do
gem 'rspec-rails', '2.14.2'
end
group :test do
gem 'rspec', '2.14.1'
gem 'spork', '0.9.0.rc'
end
也是我的pages_controller_spec.rb
require 'spec_helper'
describe PagesController do
render_views
describe "GET 'home'" do
it "returns http success" do
get 'home'
response.should be_success
end
it "should have the right title" do
get 'home'
response.should have_selector("title", :content => "Ruby on Rails Tutorial Sample App | Home")
end
end
describe "GET 'contact'" do
it "returns http success" do
get 'contact'
response.should be_success
end
it "should have the right title" do
get 'contact'
response.should have_selector("title", :content => "Ruby on Rails Tutorial Sample App | Contact")
end
end
describe "GET 'about'" do
it "returns http success" do
get 'about'
response.should be_success
end
it "should have the right title" do
get 'about'
response.should have_selector("title", :content => "Ruby on Rails Tutorial Sample App | About")
end
end
end
以下评论中的控制器代码:
class PagesController < ApplicationController
def home
end
def contact
end
def about
end
end
答案 0 :(得分:0)
您是否尝试过检查文档: https://relishapp.com/rspec
答案 1 :(得分:0)
它是否像小写一样简单&#34; a&#34;关于约vs?关于?
您的测试正在寻找字符串&#34; Ruby on Rails Tutorial Sample App |关于&#34;并且代码正在生成&#34; Ruby on Rails Tutorial Sample App |关于&#34 ;.据我所知,rspec区分大小写。
我看到的另一件事是必须设置:对于测试标题,可见为false。
答案 2 :(得分:0)
您可能还会遇到此错误 Ruby on Rail Michael Hartl's Chapter 3 Error。您可能会因为内置的Rails测试套件(在撰写本文时为'rails-controller-testing'-'1.0.2','minitest'-'5.10.3', 'minitest-reporters'-'1.1.14')
我建议您在阅读Michael Hartl的书以学习Rails时遵循其Gemfiles。
provide
将一个标记块存储在一个标识符中,以备后用。在这种情况下,请在符号:title中使用“帮助”。报价包含在<% %>
中,表示它正在执行此代码,并且没有在视图中打印出来。
yield
在这种情况下只是吐出而被阻止。收益率包含在<%= %>
中,以表明收益率已被打印到视图中。将其视为设置变量并打印出变量。
有关更多信息,请参见:http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-provide。请注意,provide实际上是content_for的包装,因此,该链接中的好地方就在这里。
这摘自以下StackOverflow文章:yield and provide() inside template