2

何を忘れているの?

ルート:

  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

何を忘れているの?

4

2 に答える 2

3

スペックファイルで次のように置き換えget "/comingsoon" ますget "comingsoon"

rspecを使用してコントローラーを指定する場合、http動詞のオペランド(get、post、put、delete)は、URLではなくコントローラーのアクションです。

于 2012-07-07T22:13:44.353 に答える
0

おそらく気の利いた提案ですが、あなたは正しい見解を持っていますか?それ以外の場合は、コントローラーに何かをレンダリングするように指示する必要があります。

于 2012-07-07T22:13:05.857 に答える