rails3 + rspec + helper method
まだ疑問に思っている程度の事。
rails3の複数のhelperに同じ名前のメソッドを作るとrspecできちんとテストできない様子。
以下のコードは実際に試したコードとは異なる名前なので、動作が異なるかもしれない。
ただ、このような状況が発生している事は残しておきたい。
例 ) こんな構成になっているとき。
# app/helper/top_helper.rb module TopHelper def my_helper_method "top helper method" end end # app/helper/second_helper.rb module SecondHelper def my_helper_method "second helper method" end end
rspec
# spec/helpers/top_helper_spec.rb require 'rspec_helper' describe TopHelper do describe :my_helper_method do it { expect(helper.my_helper_method).to eq("top helper method") } end end
これで動かしてみるとrspecがfailedな状態になる。
表示されるスタックトレースを見ると、どうやらSecondHelperの方が呼ばれている様子。
helper毎にmodule名が違うんだから、同じ名前のメソッド名つけてもきちんと使い分けてほしい。
まだ勉強不足でどこが原因なのか調べきれてないので、とりあえず状況をメモしてみた。