سؤال

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

-fREW

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

المحلول

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

هناك الكثير من المعلومات حول BDD هنا: http://behaviour-driven.org/و ويكيبيديا: http://en.wikipedia.org/wiki/Behavior_Driven_Development

هناك الكثير من الفوائد التي لا يمكن سردها هنا، لذا أنصح بتصفح هذا الموقع قليلاً.

نصائح أخرى

أنا شخصياً أفضل شوتا على RSpec.أجد أن musta لديه بناء جملة سحري أقل من RSpec.مشكلتي مع RSpec هي أنه نعم، إنه سهل القراءة للغاية عندما أقرأه بصوت عالٍ، ولكن عندما أبدأ في كتابته، هممممم، لست متأكدًا أبدًا كيف ينبغي كتابة تأكيد معين. يشرح براج ديف المشكلة أفضل مني.هو أيضا يحب شودا ولديه بعض الأمثلة.

هناك شيئان مختلفان هنا:

أول شيء هو الإطار الذي يجب استخدامه لكتابة الاختبارات/المواصفات.هنا يمكنك الاختيار بين Test::Unit وRSpec وShoulda وما إلى ذلك.الخيار هو ما إذا كنت تريد إجراء TDD تقليدي (اختبار::وحدة) أو ما إذا كنت تفضل طرق التفكير البديلة حول تحديد السلوك الذي يدعو إليه المطورون مثل ديفيد تشيملينسكي (RSpec وإلى حد ما ينبغي).

والشيء الثاني هو كيفية التعامل مع بيانات الاختبار.هناك تركيبات وبدائل Rails مصممة لأهداف أخرى مثل البرنامج المساعد FixtureReplacement.قبل أن تواجه تركيبات Rails 2.0 مشكلات عملية كبيرة وموثقة جيدًا.تم إصلاح العديد من المشكلات العملية في Rails 2.0.ومع ذلك، يمكن أن تؤدي التركيبات إلى اقتران اختبار غير مقصود وتحاول بعض البدائل تجنب ذلك.

تعد RSpec أكثر قوة لأنه من الأسهل بكثير قراءة الاختبارات وكتابتها.كما أنها أنيقة جدًا عند استخدام النماذج والنماذج، وهو مفهوم سيصبح مفيدًا للغاية بمجرد البدء في استخدامها في اختباراتك.جربه في تطبيق اختبار بسيط (NON RAILS!) وسترى مدى أناقة مواصفاتك مقارنة بالاختبار القياسي المماثل.

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

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

أينما قرأت عن مدى روعة المصانع، سترى تحذيرًا صغيرًا حول كيف أن المصانع قد لا تكون مجدية في تطبيق كبير لأنها أبطأ قليلاً من التركيبات.

لكن كلمة "أبطأ قليلاً" هي في الواقع أبطأ من حيث الحجم.

إن ترميز المصانع ليس أسهل بكثير من التركيبات التي تستخدم ملصقات للمعرفات، طالما أنك تحافظ على تنظيم التركيبات.وفي بعض الحالات يكون من الصعب تصحيح الأخطاء في المصانع.

لقد قمت الليلة فقط بتحويل مصنع واحد إلى تركيبات، وارتفع وقت تشغيل ملف الاختبار الذي استخدمه من 65 ثانية إلى 15 ثانية، على الرغم من أن حوالي 15٪ فقط من الاختبارات في ملف الاختبار هذا تستخدم هذا المصنع.

إذا كنت تستخدم minitest، فيمكنك إجراء اختباراتك بترتيب عشوائي؛وهذا سيكشف بسرعة عن أي اقتران للبيانات بين الاختبارات.(لست متأكدًا مما إذا كان rspec لديه خيار ترتيب الاختبار بشكل عشوائي)

الاختبار::الوحدة جيدة للتطبيقات الصغيرة.ولكن هناك الكثير من الفوائد لاستخدام أطر الاختبار مثل Musta أو RSpec، على سبيل المثال.ز.السياقات!!

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

يمكنك استخدام إطار اختبار مثل Cucumber وهو أسرع من RSpec.

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