RAILS PRESS RUBY on RAILS, it’s DRY and COOL …

RSS Feed

RAILS PRESS RSS

Tag Cloud

はてなブックマーク - railspress.matake.jp の注目エントリー
象形文字くさび形文字ミイラそろばんの玉そろばんコーラン占いの板?象牙大英博物館
« 前のエントリ
GitHub に自作の RubyGems を登録する方法
次のエントリー »
iKnow! Developers Conference が終了しました

Posted on
2008/10/28

Tags
ActionController, filters, テスト, ノウハウ

Keywords


この記事をはてなブックマークに登録 この記事のはてなブックマーク数 この記事を livedoor クリップに登録この記事の livedoor クリップ数 このエントリを del.icio.us に追加
ブックマークに追加する

Functional Test でリクエスト発行時(GET/POST/PUT/DELETE)に before_filter/after_filter をかける方法

Functional Test ですべての @response.body と @response.headers の内容をチェックしたくて、リクエスト発行時に after_filter 的なことをしたので、方法をメモ。

以下の記事が非常に参考になりました。

functional test をめぐる冒険 - Rails で行こう!

やってることは、単純に get とか post とかの内部で呼ばれてる process というメソッドを、RAILS_ROOT/test/test_helper 内で書き換えているだけ。

LANG : RUBY
  1. def process_with_assert_no_wapi(action, parameters = nil, session = nil, flash = nil)
  2.   process_without_assert_no_wapi(action, parameters, session, flash)
  3.   assert_no_wapi
  4. end
  5. alias_method :process_without_assert_no_wapi, :process
  6. alias_method :process, :process_with_assert_no_wapi

以下のような functional test があった場合、get(:index) と get(:show, ...) の前後で自動的にフィルタをかけています。

LANG : RUBY
  1. require File.dirname(__FILE__) + '/../test_helper'
  2.  
  3. class UsersControllerTest <ActionController::TestCase
  4.   fixtures :users
  5.  
  6.   def test_index
  7.     get(:index)
  8.   end
  9.  
  10.   def test_show
  11.     get(:index, :user_id => 'nov')
  12.   end
  13. end

でも本当は、こんなテスト書かなくていいような設計が一番いいと思うんだけどねぇ。。。


この記事がお役に立ちましたら、一言コメントもらえると嬉しいですm_ _m


コメントはこちらから




使用可能タグ: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


« 前のエントリ
GitHub に自作の RubyGems を登録する方法
次のエントリー »
iKnow! Developers Conference が終了しました