functional test
test/unit のリファクタリングか test/functional の作り込みか、どっちにしよう、と思いつつ備忘録を以下に。
- account_controller.rb は使っていないハズなので削除。試験も作らない
- てコトは、view/account/ も不要??
- てコトは、現時点のバージョンで試験が必要なコントローラは以下
- articles_contrller.rb
- front_page_controller.rb
- admin/feeds_controller.rb
- admin/general_controller.rb
これは楽勝かも、ってか次の integration test が (ry
目標としては連休中に parabola をさくっと済ませて typo のナニをさっさとやらなきゃ、ですな。いい加減仕事が遅スギって言われそうな気がしてきた。
追記
functional test において確認できる事項
- HTTP レスポンス
- ステイタスコード
- リダイレクト先
- 使用されたテンプレート
- コントローラで使用された変数
- ルーティング (これはまとめて確認、なのだろうか)
- AR のインスタンスが valid かどうか
- 結果出力される HTML
ログインとセッションについて
以下を参考に
Functional Testing Users, Authentication, and Logins with Ruby on Rails
上記は acts_as_authenticated が前提らしい。ので、login_engine なナカミを確認。とりあえず、session[:user] には User インスタンスの参照が格納ってコトで test/test_helper.rb に以下のメソド追加??
fixtures :users def login @request.session[:user] = @number1_user end
で、test_index_login と test_index_nologin がこんなカンジ??
def test_index_login login get :index assert_response :success assert_template 'index' end def test_index_nologin get :index assert_response :success assert_redirected_to :controller => 'user', :action => 'login' end
うーん ... 微妙。試してみるか。と言いつつ試験してみたのですが、login はマトモに動いている様子。ただ、fixture なデータが駄目スギらしく、test_index_login は error で止まる上、他のコントローラへの明示されていないリダイレクトは検出不可能な模様。当たり前と言えば当たり前か。