5

キュウリのステップを定義しながらcurrent_userメソッドを使う(頼りにする)ことです。私は私のプロジェクトでクリアランスを使用しています。キュウリとクリアランス:current_user in steps

まず最初に、sign_inを使用しようとしましたが、うまくいきませんでした(私はCucumber WorldがClearanceメソッドについて知らないと思います...)。

どのように私はカクズをcurrent_usersign_in/sign_outの方法で認識させるのですか?

答えて

6

あなたのキュウリの機能は、パブリックユーザーインターフェイスを使用してアプリケーションを駆動している必要があります。ような何か:current_user方法以来

Given /^I am signed in as "([^\"]*)"%/ do |username| 
    visit 'sign_in' 
    fill_in 'Username', :with => username 
    click 'Sign In' 
end 

はあなたの仕様でそれを使用すべきではない、ブラウザでは利用できません。

上記の手順で@current_userを保存し、それに属性リーダーを提供することで、あなたの手順で偽装することができます。

+0

9ヵ月後、私はcuckeする方法を実現しましたそれは正しい。あなたの答えが正しい理由を今すぐ理解してください。 – gmile

+0

それでもまだイライラしています。なぜなら 'current_user'はブラウザ側だけでなく、サーバ側でも' nil'です。 –

1

私は、すべての受け入れテスト(キュウリまたはその他)がログインロジックを実行する必要があるという考えには同意しません。幸いなことに、あなたが同意するならば、クリアランスはback doorをテストに追加して、サインインステップをスキップできます。

user = create(:user) 
visit posts_path(as: user) 

今、あなたは、ユーザとしてログインUIを駆動するログイン関連の機能を残すだろうし、直接に伐採に関連していない機能のためにそれをスキップすることができます。

+0

ありがとうございました! – kwerle

関連する問題