简体   繁体   中英

Rspec “No route matches” error

I am attempting to test my sessions_controller in Rails 3 app with rspec, but keep coming across this error when I run rspec on my sessions_controller_spec.rb :

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

Here are all the relevant files:

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

If there's any other info I can provide to help let me know. Thanks a lot!

post 'session' => 'session#create'

Your route definition is looking for a SessionController , but you have defined a SessionsController . Fix your route.

post 'session' => 'sessions#create'

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM