Rspec Rails 中没有匹配的路线
No route matches in Rspec Rails
我正在使用 Rails 4.1,我有一个 API json,但在 Rspec-Rails 上不起作用。
rspec-rails - 使用的版本 3.2.1
$ 佣金路线
GET /cities/:code(.:format) cities#show
cities_controller.rb
class CitiesController < ApplicationController
respond_to :json
def show
code = params[:code]
respond_with City.find_by_code(code)
end
end
cities_controller_spec.rb
require 'rails_helper'
RSpec.describe CitiesController, :type => :controller do
describe "GET city" do
it "should be ok" do
get '/cities', :code => 'DUB', :format => :json
expect(response).to be_success
expect(response).to have_http_status(200)
end
end
end
当我执行rspec时,我收到这个
Failure/Error: data = get '/cities', :code => 'DUB', :format => :json
ActionController::UrlGenerationError:
No route matches {:action=>"/cities", :controller=>"cities", :code=>"DUB", :format=>:json}
有什么想法吗?
谢谢!!
改用这个:
get :show, :code => 'DUB', :format => :json
get
方法接受控制器动作的名称,而不是路径。有关详细信息,请参阅 the documentation。
我正在使用 Rails 4.1,我有一个 API json,但在 Rspec-Rails 上不起作用。
rspec-rails - 使用的版本 3.2.1
$ 佣金路线
GET /cities/:code(.:format) cities#show
cities_controller.rb
class CitiesController < ApplicationController
respond_to :json
def show
code = params[:code]
respond_with City.find_by_code(code)
end
end
cities_controller_spec.rb
require 'rails_helper'
RSpec.describe CitiesController, :type => :controller do
describe "GET city" do
it "should be ok" do
get '/cities', :code => 'DUB', :format => :json
expect(response).to be_success
expect(response).to have_http_status(200)
end
end
end
当我执行rspec时,我收到这个
Failure/Error: data = get '/cities', :code => 'DUB', :format => :json
ActionController::UrlGenerationError:
No route matches {:action=>"/cities", :controller=>"cities", :code=>"DUB", :format=>:json}
有什么想法吗?
谢谢!!
改用这个:
get :show, :code => 'DUB', :format => :json
get
方法接受控制器动作的名称,而不是路径。有关详细信息,请参阅 the documentation。