2011-01-09 3 views
1

デビーズと宣言的な権限を使用するときに動作する機能テストを取得するのに苦労しています。私はdeviseテストヘルパーを使ってユーザーをサインインし、次にコントローラにcurrent_user変数が設定されています。しかし、宣言的な認可のためにpost_withテストヘルパーを使用するとすぐに、current_userはゼロになります。デビットと宣言的権限機能テストの問題

deviseと宣言的な認可を一緒に使用するときに機能テストを書く方法の例を教えてもらえますか?

ありがとうございました

答えて

1

私は同じ問題がありました。 deviseの機能テストでは、post_withなどの宣言的な承認テストヘルパーを使用することはできません。

機能テストでは、sign_inやsign_outなどのdevise testhelperを使用します。私は、機能テストのための工夫テストヘルパーメソッドを使用してヘルパーを書いてきました:

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 

お役に立てば幸いです。

+0

素晴らしいソリューションありがとうございます。 –