Я думаю, что я рассмотрел перестановки для тестирования маршрута с параметром запроса, но ни один из подходов не проходит.
В моем route.rb есть следующее:
resources :items
Тогда для моего функционального теста у меня есть:
require 'ruby-debug'
require 'test_helper'
class ItemsControllerTest < ActionController::TestCase
# Failure: test_assert_generates_using_params_and_extras(ItemsControllerTest) [test/functional/items_controller_test.rb:7]: The generated path <"/items/1/edit"> did not match <"/items/1/edit?q=abc">
test "assert_generates using params and extras" do
assert_generates '/items/1/edit?q=abc',
{ :controller => 'items', :action => 'edit', :id => '1', :q => 'abc' },
{},
{ :q => 'abc' }
end
# Failure: test_assert_generates_using_only_params(ItemsControllerTest) [test/functional/items_controller_test.rb:15]: found extras <{:q=>"abc"}>, not <{}>
test "assert_generates using only params" do
assert_generates '/items/1/edit?q=abc',
{ :controller => 'items', :action => 'edit', :id => '1', :q => 'abc' }
end
# Failure: test_assert_generates_using_using_only_extras(ItemsControllerTest) [test/functional/items_controller_test.rb:21]: found extras <{}>, not <{:q=>"abc"}>
test "assert_generates using using only extras" do
assert_generates '/items/1/edit?q=abc',
{ :controller => 'items', :action => 'edit', :id => '1' },
{},
{ :q => 'abc' }
end
# Failure: test_assert_routing_using_params_and_extras(ItemsControllerTest) [test/functional/items_controller_test.rb:29]: The generated path <"/items/1/edit"> did not match <"/items/1/edit?q=abc">
test "assert_routing using params and extras" do
assert_routing '/items/1/edit?q=abc',
{ :controller => 'items', :action => 'edit', :id => '1', :q => 'abc' },
{},
{ :q => 'abc' }
end
# Failure: test_assert_routing_using_only_params(ItemsControllerTest) [test/functional/items_controller_test.rb:37]: found extras <{:q=>"abc"}>, not <{}>
test "assert_routing using only params" do
assert_routing '/items/1/edit?q=abc',
{ :controller => 'items', :action => 'edit', :id => '1', :q => 'abc' }
end
# Failure: test_assert_routing_using_using_only_extras(ItemsControllerTest) [test/functional/items_controller_test.rb:43]: found extras <{}>, not <{:q=>"abc"}>
test "assert_routing using using only extras" do
assert_routing '/items/1/edit?q=abc',
{ :controller => 'items', :action => 'edit', :id => '1' },
{},
{ :q => 'abc' }
end
end
Я бы ожидал, что тесты * _using_params_and_extras пройдут - что мне не хватает?