ぽっぺん日記@karashi.org
2007-09-20(Thu) [長年日記]
_ HelperのRSpecテストでちょっとハマった
RSpecでHelperのテストを書いていて、ちょっとハマったのでメモ。
テストしようと思ったのは、こんなコード。
application_helper.rb:
def show_link(string, options = {})
link_to(string, { :action => "foobaa" }.merge(options))
end
RSpecのテストには、こんなコードを書いた。
application_helper_spec.rb:
it "show_link should return link" do
show_link("hoge", :key=>'abc').should =~ /^<a href=.*key=abc.*>.*<\/a>$/i
end
ホントは正規表現をもっと厳密に書かないとテストにならないんだけど、ご愛嬌。
ここまで書いて、テストを走らせたところ(と言うか、ホントはautotestで自動だけど)、
Need controller and action!
と怒られ、テストが失敗する。あれー? と思いつつ、色々といじってみるがダメ。
で、エラーの文面を読み直し、もしかしてと思いついて、application_helper.rbをこんな感じに書き直してみたら、テストが通るようになった。
def show_link(string, options = {})
link_to(string, { :controller => @controller.controller_name, :action => "foobaa" }.merge(options))
end
なるほど。エラーで言っている通り、controllerが指定されていないとダメなんだね。同一controllerの場合には、actionだけ書いて、controllerは書かないようにしていたので、まったく思いもよらなかった。
たぶん、これって常識なんだけだろうけども、もしかしたら役に立つ人もいるかも知れないので書いておきます。
[ツッコミを入れる]
[]
本日のPingbacks(全0件)



まで頂ければ幸いです。
ホアズブレスの龍追い人 (創元推理文庫 F マ 9-2)(パトリシア A.マキリップ)
告白(湊 かなえ)
テロリズムを理解する―社会心理学からのアプローチ
フロスト気質 上 (創元推理文庫 M ウ)(R.D.ウィングフィールド)
フロスト気質 下 (創元推理文庫 M ウ)(R.D.ウィングフィールド)
新編真ク・リトル・リトル神話大系 4 (4)(H.P.ラヴクラフト)
速水螺旋人の馬車馬大作戦(速水螺旋人)