Ich habe einen Fehler in einer Rails 4.2.7.1 Controller-Aktion, wo ich die eingehenden Parameter ändern:Wie teste ich eine Rails-Aktion mit eingefrorenen Strings als Parameter?
params[:temperature].gsub!(',', '.')
Bis vor kurzem das funktionierte, aber es funktioniert nicht in der Entwicklung und Produktion jetzt:
can't modify frozen String
Update: die Ursache des gefrorenen String ist der Kommentar am Anfang der Datei application_controller.rb
:
# frozen_string_literal: true
Ich habe eine Lösung für das Problem, aber ich habe keinen Test, der den Fehler aufdeckt. Sowohl mein Controller-Test als auch mein Integrationstest gelingen mit dem fehlerhaften Code, und ich sehe, dass die Parameter im Controller nicht eingefroren sind, selbst wenn sie eingefroren sind, wenn sie vom Test gesendet werden.
Wie kann ich sicherstellen, dass in meinem Test eingefrorene Parameter im Controller ankommen?
Welche Version von Ruby verwenden Sie? –
Ich verwende Ruby 2.3.1 und JRuby 9.1.5.0 mit den gleichen Ergebnissen. – donV