我正在尝试使用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
如果有任何其他信息我可以提供以帮助告诉我。非常感谢!
答案 0 :(得分:4)
post 'session' => 'session#create'
您的路线定义正在寻找SessionController
,但您已定义SessionsController
。修复你的路线。
post 'session' => 'sessions#create'