Как проверить действие Rails с замороженными строками в качестве параметров?

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

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

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

can't modify frozen String

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

# frozen_string_literal: true

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

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

1 ответ

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

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

Другие вопросы по тегам