سؤال

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

  • يصبح إجراء الاختبارات قابلاً للتشغيل الآلي وقابلاً للتكرار
  • يمكنك الاختبار على مستوى أكثر تفصيلاً بكثير من اختبار الإشارة والنقر عبر واجهة المستخدم الرسومية

ريتميس

سؤالي هو، ما هي "أفضل الممارسات" الحالية فيما يتعلق بالأدوات وكذلك متى وأين يمكنك استخدام اختبار الوحدة كجزء من الترميز اليومي؟

دعونا نحاول أن نكون ملحدين إلى حد ما في اللغة وأن نغطي جميع القواعد.

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

المحلول

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

  1. تأكد من اختبار الاختبارات الخاصة بك واحدشيء وشيء واحد فقط.
  2. اكتب اختبارات الوحدة كما تذهب.ويفضل قبل تكتب الكود الذي تختبره.
  3. لا تقم باختبار الوحدة لواجهة المستخدم الرسومية.
  4. افصل بين مخاوفك.
  5. تقليل تبعيات الاختبارات الخاصة بك.
  6. سلوك وهمي مع يسخر.

نصائح أخرى

قد ترغب في إلقاء نظرة على TDD على ثلاث بطاقات فهرسة و ثلاث بطاقات فهرسة لتتذكر بسهولة جوهر التطوير القائم على الاختبار:

البطاقة رقم 1.قوانين العم بوب الثلاثة

  • لا تكتب أي رمز إنتاج إلا لاجتياز اختبار فاشل.
  • اكتب فقط ما يكفي من الاختبار لإثبات الفشل.
  • اكتب فقط ما يكفي من كود الإنتاج لاجتياز الاختبار.

البطاقة رقم 2:المبادئ الأولى

  • سريع:بسرعة مذهلة للعقل، كما هو الحال في مئات أو آلاف في الثانية الواحدة.
  • معزول:الاختبار يعزل الخطأ بوضوح.
  • قابل للتكرار:يمكنني تشغيله بشكل متكرر وسوف يمر أو يفشل بنفس الطريقة في كل مرة.
  • التحقق الذاتي:الاختبار ناجح بشكل لا لبس فيه.
  • في الوقت المناسب:تم إنتاجه بطريقة متقنة مع تغييرات صغيرة في التعليمات البرمجية.

البطاقة رقم 3:جوهر TDD

  • أحمر:فشل الاختبار
  • أخضر:يمر الاختبار
  • إعادة البناء:رمز نظيف والاختبارات

ما يسمى xUnit يستخدم الإطار على نطاق واسع.تم تطويره في الأصل لـ Smalltalk باسم SUnit، ثم تطور إلى JUnit لـ Java، ولديه الآن العديد من التطبيقات الأخرى مثل NUnit لـ .Net.إنه تقريبًا معيار واقعي - إذا قلت أنك تستخدم اختبارات الوحدة، فإن غالبية المطورين الآخرين سيفترضون أنك تقصد xUnit أو ما شابه ذلك.

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

تعد عائلة xUnit الدعامة الأساسية لاختبار الوحدة.لقد تم دمجها في أمثال Netbeans وEclipse والعديد من بيئات التطوير المتكاملة الأخرى.أنها توفر حلاً بسيطًا ومنظمًا لاختبار الوحدة.

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

تعد NUnit أداة جيدة لأي من لغات .NET.

يمكن استخدام اختبارات الوحدة بعدة طرق:

  1. منطق الاختبار
  2. زيادة فصل وحدات التعليمات البرمجية.إذا لم تتمكن من اختبار وظيفة أو قسم من التعليمات البرمجية بشكل كامل، فإن الأجزاء التي تتكون منها تكون مترابطة للغاية.
  3. دفع التطوير، بعض الناس يكتبون الاختبارات قبل يكتبون الكود المراد اختباره.هذا يجبرك على التفكير فيما تريد أن يفعله الكود يفعل, ، ثم يمنحك إرشادات محددة حول الوقت الذي تحقق فيه ذلك.

لا تنس دعم إعادة الهيكلة.يوفر ReSharper on .NET إعادة هيكلة تلقائية وإصلاحات سريعة للتعليمات البرمجية المفقودة.وهذا يعني أنه إذا قمت باستدعاء شيء غير موجود، فسوف يسألك ReSharper عما إذا كنت تريد إنشاء القطعة المفقودة.

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