2016-12-15 2 views
0

У меня есть ошибка в действии контроллера Rails 4.2.7.1, где я изменить входящий параметр:Как проверить действие Rails с замороженными строками в качестве параметров?

params[:temperature].gsub!(',', '.') 

До недавнего времени это работало, но он терпит неудачу в разработке и производстве в настоящее время:

can't modify frozen String 

Обновление: причина замороженной струны комментарий в верхней части файла application_controller.rb:

# frozen_string_literal: true 

У меня есть проблема с проблемой, но у меня нет теста, который обнаруживает ошибку. Как мой тестовый тест, так и интеграционный тест успешно работают с неисправным кодом, и я вижу, что параметры не заморожены в контроллере, даже если они заморожены при публикации теста.

Как я могу обеспечить, чтобы замороженные параметры поступали в контроллер в моем тесте?

+0

Какую версию Ruby вы используете? –

+0

Я использую Ruby 2.3.1 и JRuby 9.1.5.0 с теми же результатами. – donV

ответ

0

Вы можете протестировать свое приложение точно так же, как и обычное использование, используя жемчужину и функциональные тесты . Для использования вашего приложения используется фактический веб-браузер. Он полностью раскрыл мою ошибку.

Недостатком является то, что это много медленнее, чем контрольный тест или тест интеграции, в 10-100 раз.