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 で止まる上、他のコントローラへの明示されていないリダイレクトは検出不可能な模様。当たり前と言えば当たり前か。