1

私はミニテストの2つのコントローラーメソッドでテストしようとしています:

class CurrenciesController < InheritedResources::Base

  def mark_refresh
    session[:refreshable] = true
    redirect_to currencies_url
  end

  def unmark_refresh
    session[:refreshable] = false
    redirect_to currencies_url
  end
end

私のテスト:

require "minitest_helper"

describe "Currencies integration" do

  it "should auto refresh" do
    visit currencies_path
    click_on "Auto refresh"
    session[:refreshable].must_equal true
  end

  it "should turn off auto refresh" do
    session[:refreshable] = true
    visit currencies_path
    click_on "Auto refresh"
    session[:refreshable].must_equal false
  end

しかし、未定義のローカル変数またはメソッド`session'を取得しています。テストでは、セッションハッシュを何らかの方法で初期化する必要がありますか?レール3.2.12を使用しています。

4

1 に答える 1

0

私は、統合テストではセッションハッシュをテストすべきではなく、デフォルトでそこに追加されないことを学びました。この質問は、それを理解するのに本当に役立ちました。

于 2013-04-03T14:10:42.023 に答える