2016-12-15 5 views
0

私が入ってくるパラメータ変更のRails 4.2.7.1コントローラのアクションにエラーがあります。これは働いていた最近までフリーズ文字列をパラメータとしてRailsアクションをテストするにはどうすればよいですか?

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

を、それが今で開発・生産に失敗します。

can't modify frozen String 

アップデート:

# frozen_string_literal: true 
凍結した文字列の原因は application_controller.rbファイルの先頭のコメントです

問題の修正がありますが、エラーを発見するテストはありません。私のコントローラーテストとインテグレーションテストの両方が失敗したコードで成功し、テストから投稿されたときに凍結されていても、コントローラーでパラメーターが固定されていないことがわかります。

テストでは、固定パラメータがコントローラに到着するようにするにはどうすればよいですか?

+0

使用しているRubyのバージョンは何ですか? –

+0

私はRuby 2.3.1とJRuby 9.1.5.0を同じ結果で使用しています。 – donV

答えて

0

宝石と機能テストのCapybaraを使用すると、通常の使用とまったく同じ方法でアプリをテストできます。これは実際のWebブラウザを使用してアプリケーションを実行します。それは私のエラーを完全に明らかにした。

不利な点は、コントローラテストまたは統合テストよりも遅く、であり、10-100倍遅いということです。

関連する問題