Скажем, у меня есть FoosController
с методом redirect_to_baz
.
class FoosController < ApplicationController
def redirect_to_baz
redirect_to 'http://example.com/?foo=1&bar=2&baz=3'
end
end
Я тестирую это с помощью spec/controllers/foos_controller_spec.rb
:
require 'spec_helper'
describe FoosController, :type => :controller do
describe "GET redirect_to_baz" do
it "redirects to example.com with params" do
get :redirect_to_baz
expect(response).to redirect_to "http://example.com/?foo=1&bar=2&baz=3"
end
end
end
Это работает. Однако, если кто-то меняет параметры строки запроса (например, http://example.com/?bar=2&baz=3&foo=1
), тест терпит неудачу.
Какой правильный способ проверить это?
Я хотел бы сделать что-то вроде:
expect(response).to redirect_to("http://example.com/", params: { foo: 1, bar: 2, baz: 3 })
Я посмотрел документацию , и я попытался найти response.parameters
, но я не нашел ничего подобного. Даже Hash#to_query
, похоже, не решает эту проблему.
Любая помощь будет принята с благодарностью.