在我的routes.rb中使用以下路由:
post 'fadvisor', to: 'fadvisor_url_validation#validate', as: :fadvisor, default: :json
我想在fadvisor_url_validation_controller_spec.rb
内写一些测试。就像一个简单的测试,看看我是否得到了成功的回应。
RSpec.describe FAdvisorUrlValidationController, type: :controller do
let (:c_partner) { create(:c_partner) }
let (:fadvisor) { create(:fadvisor, c_partner: c_partner, url: '/testurl') }
it 'has a valid token' do
post :fadvisor
expect(response).to be_success
end
end
但是当我这样做时,RSpec告诉我:ActionController::UrlGenerationError: No route matches {:action=>"/fadvisor", :controller=>"fadvisor_url_validation"}
我做错了什么?
答案 0 :(得分:2)
我认为你的路线是:
post '/fadvisor', to: 'fadvisor_url_validation#validate', as: :fadvisor, default: :json
顺便说一下你的规格是:
it 'has a valid token' do
post '/fadvisor'
expect(response).to be_success
end
如果你想使用rails url helper,请确保包括:
<强> rspec_helper.rb
RSpec.configure do |config|
config.include Rails.application.routes.url_helpers
end
然后您的规范变为:
it 'has a valid token' do
post fadvisor_path
expect(response).to be_success
end