4
要獲得調查問卷的名單我使用我怎麼能RSpec的測試與路徑通配符
GET "/questionnaires/user/1/public/true/mine/true/shared/true"
在routes.rb中我有
/questionnaires/*myparams(.:format) {:controller=>"questionnaires", :action=>"list"}
控制器使用通配符路由創建一個控制器查詢列表方法
class QuestionnairesController < ApplicationController
before_filter :authenticate
def list
myparams = params[:myparams].split("/").to_h
end
# ...
end
我想創建一個spec文件中所有選項的測試用例
describe "GET list" do
it "returns the list of questionnaires for the user" do
get :list
# ...
end
end
我所得到的,當我運行rspec的是
Failures:
1) QuestionnairesController List GET list returns the list of questionnaires for the user
Failure/Error: get :list
No route matches {:controller=>"questionnaires", :action=>"list"}
# ./spec/controllers/questionnaires_controller_spec.rb:20
的問題是怎麼寫的規範文件的匹配替換的參數傳遞給rspec的。我喜歡做這樣的事情:
describe "GET list" do
it "returns the list of questionnaires for the user" do
get :list, "/user/1/public/true/mine/true/shared/true"
end
end
和更改參數,以測試不同的情況
我最終使用GET:列表:myparams =>「rspec的/真正/用戶/#{@user.id}/public/true/mine/false/shared/false「沒有拆分,拆分在控制器內完成 – user567592 2011-02-19 00:50:09