RSpecでHelperのテストするときのお約束
RailsのHelperのテストを書いたことが無かったので、ちょっと書いてみた。
環境は以下の通り。
- Ruby 1.8.7 P170
- Rails 2.1.2
- RSpec 1.2.4
- rspec-rails 1.2.4
テストしたかったのはApplicationHelperの内部なのでspec/helpsers/application_helper_spec.rbを作って以下のように書いた。
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') describe ApplicationHelper do #ここにテストをいくつか書いた。 end
するとApplicationHelper.rbには確かに書いてあるメソッドなんだが、見つからないとおこられる。
少し考えて、includeを付与してみた。
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') #以下の1行を追加 include(ApplicationHelper) describe ApplicationHelper do #テスト内容は特に変えない。 end
テストしたいHelperをincludeで明示的に呼び出してやるとテストが動作した。これは手動で書かないといけないお約束なのかな。