こんにちは。
この暑させっかく夏好きになったのに、もはや嫌いになりそう。
どうもハチマキです。
はじめに
業務で発生したエラーのメモを書いていきます。
忘れないうちのメモメモっと。
本日の概要 : RuntimeError: Must pass a hash containing 'with'の解決方法
事象
featureテストの書いた際にエラーが発生
具体的には、fill_inメソッドを使って、フォームに値が反映されているか確認するテスト
エラー例
Failure/Error: fill_in 'hoge' RuntimeError: Must pass a hash containing 'with'
問題点
大きく2点が問題でした。
- :withパラメーターで文字列が指定されていない
- labelでなくテキストフィールド側のIDに合わせた値ではなかった
解決方法
テストファイル
fill_in 'hoge', with: 'test' ←'hoge'の部分はidを、'test'の部分はvalueを記述 click_on "更新" expect(page).to have_text("test")
viewファイル
= form_tag(~~_path, method: :'post') do %ul %li = label_tag :hoge = text_field_tag :hoge, class: 'form-control' %li = label_tag :fuga = text_area_tag : fuga, '', size: "40×3", placeholder: "testです" %li = submit_tag '更新', class: 'form-btn'
これだけ!簡単でした!
IDがわからない場合は、ブラウザの開発者ツールを使って探すとすぐ見つかると思います。
参考資料
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
日々勉強です。
以上、ハチマキでした。