2

我正在尝试使用 rspec 在 Rails 3 应用程序中测试我的 session_controller,但是当我在我的 rspec 上运行 rspec 时不断遇到此错误sessions_controller_spec.rb

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

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

4

1 回答 1

4
post 'session' => 'session#create'

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

post 'session' => 'sessions#create'
于 2012-12-07T15:03:24.463 回答