سؤال

ما يمكنني إنجازه هو استخدام (الاعتماد على) 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)

يمكنك الآن ترك الميزات المتعلقة بتسجيل الدخول التي تقود واجهة المستخدم لتسجيل الدخول كمستخدم وتخطي ذلك للميزات التي لا تتعلق مباشرة بتسجيل الدخول.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top