كيفية كتابة اختبارات الوحدة في C# لتحسين جودة التعليمات البرمجية

Kyfyt Ktabt Akhtbarat Alwhdt Fy C Lthsyn Jwdt Alt Lymat Albrmjyt



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

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

في هذا البرنامج التعليمي، سوف نقدم لك إطار عمل اختبار الوحدة باستخدام C# ومكتبة اختبار MSTest. سنقوم ببناء تطبيق أساسي يسمح لك بمعرفة كيفية إنشاء اختبارات الوحدة، وكيفية تشغيلها، وكيفية تفسير النتائج من فشل الاختبار أو نجاحه.







بيئة الاختبار

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



لمتابعة وتكرار التطبيق في هذا البرنامج التعليمي، تأكد من أن لديك ما يلي:



  1. تم تثبيت الاستوديو المرئي
  2. قم بتكوين أدوات .NET وC# على جهازك

إنشاء تطبيق

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





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



تأكد من تحديد 'إضافة إلى الحل' واختيار التطبيق الذي تم إنشاؤه مسبقًا.

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

اكتب الكود الخاص بتطبيق الآلة الحاسبة

الخطوة التالية هي كتابة الكود الخاص بتطبيق الآلة الحاسبة الخاص بنا. يمكننا القيام بذلك في ملف CalcApp 'program.cs'.

وبما أننا نبحث عن الوظيفة الأساسية، يمكننا إضافة الكود المصدري على النحو التالي:

حاسبة الطبقة العامة
{
عام مزدوج يضيف ( مزدوج أ , مزدوج ب )
{
يعود أ + ب ;
}

عام مزدوج طرح او خصم ( مزدوج أ , مزدوج ب )
{
يعود أ - ب ;
}

عام مزدوج تتضاعف ( مزدوج أ , مزدوج ب )
{
يعود أ * ب ;
}

عام مزدوج يقسم ( مزدوج أ , مزدوج ب )
{
لو ( ب == 0 )
رمي DivideByZeroException الجديد ( ) ;
يعود أ / ب ;
}
}

كما يمكنك التخمين، يقوم الكود السابق بإنشاء تطبيق آلة حاسبة يمكنه تنفيذ التطبيقات الحسابية الأساسية.

كتابة اختبارات الوحدة

بمجرد الانتهاء من ذلك، يمكننا كتابة اختبارات الوحدة لفئة 'الآلة الحاسبة'. في هذه الحالة كل ما علينا فعله هو كتابة الاختبارات في ملف “UnitTest” الخاص بالمشروع كما يلي:

باستخدام النظام ;

مساحة الاسم CalcApp
{
حاسبة الطبقة العامة
{
عام مزدوج يضيف ( مزدوج أ , مزدوج ب )
{
يعود أ + ب ;
}

عام مزدوج طرح او خصم ( مزدوج أ , مزدوج ب )
{
يعود أ - ب ;
}

عام مزدوج تتضاعف ( مزدوج أ , مزدوج ب )
{
يعود أ * ب ;
}

عام مزدوج يقسم ( مزدوج أ , مزدوج ب )
{
لو ( ب == 0 )
رمي DivideByZeroException الجديد ( ) ;
يعود أ / ب ;
}
}
}

مساحة الاسم CalcTest
{
[ فئة الاختبار ]
اختبارات حاسبة الطبقة العامة
{
آلة حاسبة خاصة ;

[ TestInitialize ]
عام فارغ يثبت ( )
{
آلة حاسبة = حاسبة جديدة ( ) ;
}

[ طريقة اختبار ]
عام فارغ Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
كانت النتيجة = آلة حاسبة. يضيف ( 5 , 5 ) ;
يجزم. متساوون ( 10 , نتيجة ) ;
}

[ طريقة اختبار ]
عام فارغ Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
كانت النتيجة = آلة حاسبة. طرح او خصم ( 10 , 5 ) ;
يجزم. متساوون ( 5 , نتيجة ) ;
}

[ طريقة اختبار ]
عام فارغ Multiply_TwoPositiveNumbers_ReturnsCorrectProduct ( )
{
كانت النتيجة = آلة حاسبة. تتضاعف ( 5 , 5 ) ;
يجزم. متساوون ( 25 , نتيجة ) ;
}

[ طريقة اختبار ]
[ توقع استثناء ( نوع من ( DivideByZeroException ) ) ]
عام فارغ Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
كانت النتيجة = آلة حاسبة. يقسم ( 5 , 0 ) ;
}

[ طريقة اختبار ]
عام فارغ Divide_TwoPositiveNumbers_ReturnsCorrectQuotient ( )
{
كانت النتيجة = آلة حاسبة. يقسم ( 10 , 5 ) ;
يجزم. متساوون ( 2 , نتيجة ) ;
}
}
}

خاتمة

هذا برنامج تعليمي أساسي يغطي أساسيات اختبار الوحدة في لغة C# باستخدام إطار عمل MSTest.