سؤال

أنا حاليا تكافح مع الإستئصال من مساعد طريقة بلدي سيناترا التطبيق من داخل الخيار.

لدي سيناترا التطبيق بسيط الدورة المصادقة (ملفات تعريف الارتباط) و أريد أن أنتقل من المصادقة من قبل الإستئصال من 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 ولكن بدلا من استخدام تلك المساعدين.

للأسف أعتقد أن هذه الطريقة في التعامل مع الدورة على أساس سيناترا التطبيقات من خلال الخيار هو بالفعل هو موضح في مكان آخر و ظننت مشكلتي كانت مختلفة.

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