rspec(capybara)で画面のテストを作成しております。
rspecコマンドで全体を叩いた場合と、 rpsec ファイル名 で叩いた場合、結果が異なってしまいます。
具体的には、ransackのform生成メソッドのsearch_form_forを、ApplicationHelperで上書きして用いておりますが、rspecコマンドで全体実行すると、上書きされず、メソッドが読み込まれません。
ファイル名指定をすると、URLを叩いた時と同様に、上書きされて実行されます(意図通り)
全体実行とファイル指定実行の結果が異なるのはなぜでしょうか。
情報が足りなく原因が見えません。
もしご存知の方いらっしゃいましたがご教授お願いいたします。
ruby 2.3.1
Rails 4.2.6
capistrano (3.5.0)
capybara (2.7.1)
ransack (1.7.0)
judge (2.1.1)
Server OS ubuntu
app/helpers/application_helper.rb
lang
1module ApplicationHelper 2 def search_form_for(record, options = {}, &proc) 3 options[:builder] ||= ApplicationHelper::RansackCustomFormBuilder 4 super 5 end 6end
lib/application_helper/ransack_custom_form_builder.rb
lang
1module ApplicationHelper 2 class RansackCustomFormBuilder < Judge::FormBuilder 3 include ActionView::Helpers::TagHelper 4 include ApplicationHelper 5 6 def custom_field(method, options = {}) 7 // 出力処理 8 end 9 end 10end
app/views/admin/blogs/_form.html.slim
lang
1= search_form_for [:admin, @search], html: { method: :post } do |f| 2 = f.custom_field :name # ※1 ここが全体実行だとエラーになる
※1 このエラーがrspecで出力される
ActionView::Template::Error:
undefined method `custom_field' for #Ransack::Helpers::FormBuilder
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/19 20:31
2016/07/20 01:52
2016/07/20 03:38
2016/07/22 02:50