Rspec“无路由匹配”错误

时间:2012-12-07 14:20:43

标签: ruby-on-rails testing rspec

我正在尝试使用rspec在Rails 3应用中测试我的sessions_controller,但是当我在sessions_controller_spec.rb上运行rspec时仍然遇到此错误:

ActionController::RoutingError:
   No route matches {:controller=>"sessions", :action=>"create"}

以下是所有相关文件:

routes.rb

match 'event' => 'event#create', via: [:post]
match 'event/agenda' => 'event#agenda', via: [:get]
match 'testLogin' => 'application#test_login', via: [:get]
post 'session' => 'session#create'

sessions_controller.rb

class SessionsController < ApplicationController
  def create
    #MY CODE HERE
  end
end

sessions_controller_spec.rb

require 'spec_helper'

describe SessionsController, :type => :controller do

  describe "POST #create" do

    context "invalid params" do
        it "returns a response with status failed if all required parameters are not passed in" do
            post "create"
            response.body.status.should eq("failed")
       end
    end
  end
end

如果有任何其他信息我可以提供以帮助告诉我。非常感谢!

1 个答案:

答案 0 :(得分:4)

post 'session' => 'session#create'

您的路线定义正在寻找SessionController,但您已定义SessionsController。修复你的路线。

post 'session' => 'sessions#create'