我正在尝试测试我的命名空间控制器而没有太多运气。我有以下路线设置:
namespace :api do
get 'organization/:id/questions/:number', controller: 'questions', action: 'index', as: 'organization_questions'
end
产生以下路线:
api_organization_questions GET /api/organization/:id/questions/:number(.:format) {:controller=>"api/questions", :action=>"index"}
该路由有效,我可以使用以下网址成功发出请求:http://localhost:3000/api/organization/1/questions/1234567890
但是当我尝试在单元测试中向它发出get
请求时,我收到以下错误:
没有路线匹配{:controller =>“api / questions”,:action =>“/ api / organization / 1 / questions / 1234567890”}
我的获取请求如下所示:
get api_organization_questions_path(@organization.id, '1234567890')
不确定我做错了什么!?
答案 0 :(得分:2)
你在测试什么? RSpec的? get方法的第一个参数是action。下面的代码应该提出您想要的请求:
describe Api::QuestionsController do
it "should do something" do
get :index, :id => @organization.id, :number => '1234567890'
end
end