الخيار والتخليص: Current_user في الخطوات
-
26-09-2019 - |
سؤال
ما يمكنني إنجازه هو استخدام (الاعتماد على) current_user
الطريقة أثناء تحديد خطوات الخيار. أنا أستخدم التخليص في مشروعي.
بادئ ذي بدء ، حاولت استخدامه sign_in
لكن هذا لم ينجح (أعتقد أن عالم الخيار لا يعرف عن أساليب التخليص ...).
إذن كيف يمكنني التعرف على القمع current_user
و sign_in
/sign_out
أساليب؟
المحلول
يجب أن تقود ميزات الخيار تطبيقك من خلال واجهة المستخدم العام. شيء مثل:
Given /^I am signed in as "([^\"]*)"%/ do |username|
visit 'sign_in'
fill_in 'Username', :with => username
click 'Sign In'
end
منذ current_user
الطريقة غير متوفرة للمتصفح ، يجب ألا تستخدمها في المواصفات الخاصة بك.
هل يمكن أن مزيفها في خطواتك عن طريق التخزين @current_user
في الخطوة أعلاه ثم توفير قارئ السمة لذلك.
نصائح أخرى
لا أتفق مع فكرة أن كل اختبار قبول (خيار أو غير ذلك) يجب أن يمارس منطق تسجيل الدخول. لحسن الحظ ، إذا وافقت ، أضافت التخليص أ الباب الخلفي في الاختبارات التي تتيح لك تخطي خطوات التسجيل.
user = create(:user)
visit posts_path(as: user)
يمكنك الآن ترك الميزات المتعلقة بتسجيل الدخول التي تقود واجهة المستخدم لتسجيل الدخول كمستخدم وتخطي ذلك للميزات التي لا تتعلق مباشرة بتسجيل الدخول.