我有一个失败的测试,我很难理解。我在app / controllers / users / queries_controller.rb上有一个控制器class Users::QueriesController < ApplicationController
,它有一个show
动作和一个相应的命名空间路径:
namespace :users do
resources :queries
end
我还在test / controllers / users / queries_controller_test.rb进行了测试:
require 'test_helper'
class Users::QueriesControllerTest < ActionController::TestCase
test "accessing :show action" do
get :show
assert_response :success
end
end
运行此测试会产生ActionController::UrlGenerationError: No route matches {:controller=>"users/queries", :action=>"show"}
。
正在运行rake routes
包含以下行:users_query GET /users/queries/:id(.:format) users/queries#show
。
这里出了什么问题?我正在使用Rails 4.0.0。
答案 0 :(得分:8)
我认为你需要为show动作提供一个id
test "accessing :show action" do
get :show, {:id => 1}
assert_response :success
end
这是在rails 4之前的正确方法。
请试一试,让我知道结果。