الإستئصال سيناترا مساعد في الخيار
سؤال
أنا حاليا تكافح مع الإستئصال من مساعد طريقة بلدي سيناترا التطبيق من داخل الخيار.
لدي سيناترا التطبيق بسيط الدورة المصادقة (ملفات تعريف الارتباط) و أريد أن أنتقل من المصادقة من قبل الإستئصال من logged_in?
مساعد طريقة بلدي الخيار السيناريوهات.يبدو أن هناك مشكلة مع سيناترا والخيار بشأن الدورات حتى فكرت مجرد استخدام موكا كمحاولة للتغلب على هذه المشكلة.
ومع ذلك أنا لا أعرف كيف يمكنني الوصول إلى Sinatra::Application
سبيل المثال من خلال Given
-كتلة كعب من طريقة.
المحلول
يمكنك الحصول على الحق في السياق باستخدام Sinatra::Application.class_eval
تحرير:انظر الناشر الأصلي الإجابة عن شرح كامل.
نصائح أخرى
يبدو أنني بحاجة إلى مباشرة تجاوز آلية المصادقة داخل Before do ... end
-كتلة
حتى انتهى بي الأمر مع hooks.rb
توضع في features/support/
ملف الكتابة بلدي logged_in?
و current_user
الأسلوب.
Before do
MySinatraApplicationClass.class_eval do
helpers do
def logged_in?
return true
end
def current_user
# This returns a certain Username usually stored
# in the session, returning it like
# that prohibits different user logins, but for
# now this is enough for me
"Walter"
end
end
end
end
الشيء الوحيد الذي كان علي أن تأخذ الرعاية من أن أي إجراءات أخرى داخل التطبيق مباشرة من قراءة session
ولكن بدلا من استخدام تلك المساعدين.
للأسف أعتقد أن هذه الطريقة في التعامل مع الدورة على أساس سيناترا التطبيقات من خلال الخيار هو بالفعل هو موضح في مكان آخر و ظننت مشكلتي كانت مختلفة.