ПРЕДУПРЕЖДЕНИЕ ОБ УСТРАНЕНИИ: Методы HTTP-запроса ActionController::TestCase будут принимать только ключевые аргументы в будущих версиях Rails
Я получаю предупреждение об устаревании для своих тестов, но я не понимаю, как я должен реорганизовать свои тесты, чтобы соответствовать будущим версиям rails. Я получил это из нескольких тестов, поэтому приложил самый простой пример тестирования, что существуют статические страницы hight_voltage.
Вот мой тест>
describe HighVoltage::PagesController, '#show' do
%w(about conditions).each do |page|
context "on GET to /pages/#{page}" do
before do
get :show, id: page
end
it { should respond_with(:success) }
it { should render_template(page) }
end
end
end
А вот и предупреждение об устаревании.
*DEPRECATION WARNING: ActionController::TestCase HTTP request methods will accept only
keyword arguments in future Rails versions.
Examples:
get :show, params: { id: 1 }, session: { user_id: 1 }
process :update, method: :post, params: { id: 1 }
(called from block (4 levels) in <top (required)> at /Users/kimmo/Documents/care-city/spec/controllers/pages_controller_spec.rb:5)
DEPRECATION WARNING: ActionController::TestCase HTTP request methods will accept only
keyword arguments in future Rails versions.
1 ответ
Решение
Вы должны добавить "params:" для ваших параметров
get :show, params: {id: page}
Вы можете передать больше ключевых слов для заголовков и других настроек для запроса
РЕДАКТИРОВАТЬ: обратите внимание, что фактическая ошибка, которую вы копировали, уже говорит вам сделать это
"Примеры:
get: show, params: {id: 1}, сессия: {user_id: 1}
process: update, method:: post, params: {id: 1} "