سؤال

أواجه مشكلة كبيرة في الاختبار مع API تحكم RSPEC. الآن أنا أستخدم محلول مصادقة الوسيطة (واردين)، وعندما أقوم بتشغيل المواصفات، فإن الوكيل المضافة من قبل الوسيطة ليس هناك، وجميع اختبارات المصادقة رمي NilPointerExceptionفي جميع أنحاء المكان.

يبدو RSPEC لا يضيف الوسيطة التطبيق النهائي عن قصد، وأود أن أعرف ما إذا كان هناك طريقة للقرد التصحيح RSPEC من أجل جعل ذلك يذهب.

لقد اختبرت بالفعل كل شيء مع الخيار، ولكن هذا هو إعادة استضافة نسخة مصادقة قديمة وهناك العديد من اختبارات تحكم تعتمد على منطق المصادقة من أجل العمل.

شكرا مقدما.

هل كانت مفيدة؟

المحلول

يبدو أن API وحدة تحكم RSPEC ل Rails 2.x لا يستخدم حقا الرف على مكالمة تحكم، لذلك لا يمكن القيام بذلك. ومع ذلك، هناك حل (غير مثبت) يشير إليه ديفيد شيليمسكي. سأضع الإجابة التي قدمها لي في قائمة بريد RSPEC-User.

مواصفات التحكم لا تذهب من خلال الرف في القضبان 2، لذلك ليس حقا.

هناك مواصفات التكامل، والتي لف واجهة برمجة التطبيقات اختبار تكامل القضبان حتى تتمكن من فعل أي شيء يمكنك القيام به في اختبار تكامل القضبان. ما عليك سوى نقل الملفات إلى المواصفات / التكامل، وتحويل الطلبات من "Get: فهرس" إلى "الحصول على" مسار / إلى / فهرس "ويجب أن تكون جيدا جدا للذهاب.

واسمحوا لنا أن نعرف كيف أن يعمل بها.

هتاف، ديفيد

انتهى الأمر بالسخرية من تطبيق ApplicationController على أساليب منطق المصادقة للقيام بأشياء دمية من أجل تشغيل المواصفات الخاصة بي، فعلت هذا قبل توجيه الاقتراح الذي أشار إليه ديفيد، لذلك لن أعرف ما إذا كان هذا العمل. وفي كلتا الحالتين آمل أن تساعد أي مطور آخر في نفس الموقف.

نصائح أخرى

قد يلقي هذا المنشور في مشكلة ذات صلة بعض الضوء ويؤدي في النهاية إلى حل لتحديد مكونات الوسيطة في تكوين RSPEC (آمل!)

https://rspec.lighthouseapp.com/projects/5645/tickets/963-Request-is-nil#ticket-963-14.

لا يساعد حقا في إصدار قضية Rails2 الخاصة بك، ولكن جاء هذا الاستعلام إلى الأعلى ل "RSPEC Overmentware"، لذلك، نأمل أن يساعد الآخرين الذين يواجهون المشكلة أثناء محاولة الإصدار التجريبي للجذع 3 وما بعده.

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