2017-10-25 13 views
0

こんにちは、私は、spec/controllerフォルダ内の異なるファイルでAPIのコントローラテストをたくさんしています。私は、ユーザーおよびすべてのテストのための役割を作成する必要があるため、私は1つの共通認証を持つ複数のコントローラRspec

before do 
    authenticate_user(user, role) 
end 

これを持っているそれらの仕様のそれぞれについてspec's時間がかかります。私は、同じ認証の下ですべての私のコントローラテストを実行するために、この同じヘルパーを上位レベルに持っていたいと思います。

これを達成するために誰が考えているのですか?

スタビングすることも選択肢ですが、ユーザーには多くのロジックがあり、それは困難で時間がかかることがあります。

おかげ

答えて

0

あなたは、例えば、このメソッドへの複数の呼び出しを防ぐためにbefore(:suite)またはbefore(:all)を使用することができます

before(:suite) do 
    authenticate_user(user, role) 
end 

また、あなたは次のように、spec/support/sign_in_helper.rbでそれを見つけることができます。

module SignInHelper 
    def sign_in 
    before(:suite) do 
     authenticate_user(user, role) 
    end 
    end 
end 

と同様に、spec_helperでそれを使用する:あなたは同じようにそれを使用することができますその後

require 'spec/support/sign_in_helper' 
extend SignInHelper 

トップレベルのコントローラスペックのマクロ。

関連する問題