1

devise と宣言型承認を使用しているときに、機能テストを機能させるのに非常に問題があります。devise テスト ヘルパーを使用してユーザーをサインインすると、コントローラーに current_user 変数が入力されます。しかし、post_with テスト ヘルパーを宣言型承認に使用するとすぐに、current_user は nil になります。

devise と宣言型承認を一緒に使用する場合に機能テストを作成する方法の例を教えてもらえますか?

ありがとう

4

1 に答える 1

1

私も同じ問題を抱えていました。devise を使用した機能テストでは、post_with などの宣言型承認テストヘルパーを使用できません。

機能テストには、sign_in や sign_out などのデバイス テストヘルパーを使用する必要があります。機能テスト用のデバイス テスト ヘルパー メソッドを使用するヘルパーを作成しました。

def test_with_user(user, &block)
  begin
    sign_in :user, users(user)
    yield
  ensure
    sign_out :user
  end
end

このヘルパーは次のように使用します。

test_with_user(:max) do
  get :new
  assert_response :success
end

それが役立つことを願っています。

于 2011-01-10T20:28:45.330 に答える