在获取请求时没有路由匹配使用rspec

问题描述:

我忘了什么?在获取请求时没有路由匹配使用rspec

路线:

get "/comingsoon" => "visitors#comingsoon" 
    resources :visitors 

控制器:

class VisitorsController < ApplicationController 
    def comingsoon 
    @new_visitor = Visitor.new 
    end 
end 

规格:

require 'spec_helper' 

describe VisitorsController do 
    describe "GET /comingsoon" do 
    it "should be happy" do 
     get "/comingsoon" 
     response.should be_success 
    end 
    end 
end 

而这里的结果:

✗ rspec spec/controllers/visitors_controller_spec.rb 
F 

Failures: 

    1) VisitorsController GET /comingsoon should be valid 
    Failure/Error: get "/comingsoon" 
    ActionController::RoutingError: 
     No route matches {:controller=>"visitors", :action=>"/comingsoon"} 
    # ./spec/controllers/visitors_controller_spec.rb:7:in `block (3 levels) in <top (required)>' 

Finished in 0.14226 seconds 
1 example, 1 failure 

Failed examples: 

rspec ./spec/controllers/visitors_controller_spec.rb:6 # VisitorsController GET /comingsoon should be valid 

我忘了什么?

在你规范文件,get "comingsoon"

更换get "/comingsoon" 当规范中的一个控制器使用RSpec的HTTP动词的操作数(GET,POST,PUT,删除)是控制器的行动,而不是一个网址。

可能是愚蠢的建议,但你有一个看法是正确的?否则,你必须告诉你的控制器渲染一些东西。