C #. مثال على إنشاء اختبار وحدة في MS Visual Studio | BestProg

  1. C #. مثال على إنشاء اختبار وحدة في MS Visual Studio يصف هذا الموضوع عملية خطوة بخطوة لإنشاء اختبار...
  2. إعدام
  3. 2. إعداد نص الوحدة النمطية Program.cs
  4. 2.2. اجعل فئة البرنامج عامة
  5. 3. قائمة البرنامج المختبر
  6. 4. إنشاء اختبار
  7. 4.1. إضافة مشروع جديد إلى الحل
  8. 4.2. هيكل الحل
  9. 4.3. نص الملف "UnitTest1.cs". السمات [TestMethod] و [TestClass]
  10. 4.4. إجراء تغييرات على نص الوحدة النمطية UnitTest1. تغيير اسم طريقة الاختبار
  11. 4.5. ربط مشروع MinApp بمشروع TestMinApp
  12. 4.6. إجراء تغييرات على نص الوحدة النمطية UnitTest1.cs
  13. 4.6.2. TestMin () نص الأسلوب
  14. 4.7. الوحدة النمطية النص الوحدة النمطية
  15. 5. قم بإجراء الاختبار وتحقق من نتيجة الاختبار
  16. 6. النتيجة. التفاعل بين المشاريع
  17. موضوعات ذات صلة

C #. مثال على إنشاء اختبار وحدة في MS Visual Studio

يصف هذا الموضوع عملية خطوة بخطوة لإنشاء اختبار وحدة بسيط في Microsoft Visual Studio 2010 (C #) لتطبيق مثل تطبيق وحدة التحكم. باستخدام هذا المثال ، يمكنك معرفة كيفية إنشاء اختبارات الوحدة الخاصة بك. يوضح المثال أيضًا استخدام فئة Assert لاختبار تشغيل الوظائف.

المحتوى

حالة المشكلة

بالنسبة لتطبيق مثل تطبيق وحدة التحكم ، قم بتطوير اختبار وحدة يختبر تشغيل وظيفة Min () ، والذي يحدد الحد الأقصى للعنصر المكون من ثلاثة أرقام.

للدالة Min () ، اضبط طريقة الاختبار على TestMin (). تحقق الوظيفة.

إعدام

1. قم بإنشاء تطبيق باستخدام قالب Console Applicaiton

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

ملف -> جديد -> مشروع ...

نتيجة لذلك ، يتم فتح نافذة مشروع جديد. في النافذة ، حدد قالب تطبيق وحدة التحكم كما هو موضح في الشكل 1. يتم تحديد القالب في علامة التبويب Visual C #.

Visual C # -> تطبيق وحدة التحكم

Visual C # -> تطبيق وحدة التحكم

التين. 1. نافذة "مشروع جديد". اختيار تطبيق لنوع تطبيق وحدة التحكم

2. إعداد نص الوحدة النمطية Program.cs

2.1. إضافة وظيفة Min () إلى نص الوحدة النمطية

في نص فئة البرنامج ، أضف نص الدالة Min ().

يتم الإعلان عن الوظيفة كعمومي (ثابت) وعامة. Min () وظيفة النص

stat static public Min (int a، int b، int c) {int min = a؛ إذا (دقيقة> ب) دقيقة = ب ؛ إذا (دقيقة> ج) دقيقة = ج ؛ عودة دقيقة ؛ }

التين. 2. عرض نافذة MS Visual Studio 2010 ، الوحدة النمطية "Program.cs"

2.2. اجعل فئة البرنامج عامة

من أجل الوصول إلى وظيفة Min () لفئة البرنامج ، تحتاج إلى إتاحة هذه الفئة للجمهور. للقيام بذلك ، قبل الإعلان عن الفصل ، تحتاج إلى تحديد الكلمة الأساسية العامة.

... مساحة الاسم MinApp {public class Program {// class methods // ...}} ...

بعد ذلك ، برنامج الاختبار جاهز.

3. قائمة البرنامج المختبر

في الوقت الحالي ، يكون سرد البرنامج الجاري اختباره كما يلي:

باستخدام النظام ؛ باستخدام System.Collections.Generic. باستخدام System.Linq. باستخدام System.Text. مساحة الاسم MinApp {public class Program {public static int Min (int a، int b، int c) {int min = a؛ إذا (دقيقة> ب) دقيقة = ب ؛ إذا (دقيقة> ج) دقيقة = ج ؛ عودة دقيقة ؛ } static void Main (string [] args) {Console.WriteLine ("Demo of Unit-testing in C #.")؛ }}}

نظرًا لأن هذا البرنامج سيتم اختباره من وحدة اختبار أخرى ، فليست هناك حاجة لإدخال أي شيء آخر في وظيفة Main (). لأنه وفقًا لحالة المشكلة ، تحتاج إلى اختبار تشغيل الدالة Min (). وسيتم ذلك من وحدة الاختبار. في الوقت الحالي ، برنامجنا جاهز للاختبار.

4. إنشاء اختبار

يتم إنشاء الاختبار بواسطة مشروع منفصل (مشروع) في الحل (الحل). البرنامج الذي يجري اختباره لا يعرف عنه. سيقوم البرنامج الذي سيتم اختباره (برنامج الاختبار) باستدعاء وظائف البرنامج الجاري اختباره. في حالتنا ، فإن برنامج الاختبار استدعاء وظيفة

int Min (int، int، int)؛

4.1. إضافة مشروع جديد إلى الحل

لهذا الحل (الحل) تحتاج إلى إضافة مشروع جديد باستخدام الأمر

ملف-> إضافة-> مشروع جديد ...

يظهر إطار إنشاء مشروع جديد في الشكل 3.

يظهر إطار إنشاء مشروع جديد في الشكل 3

التين. 3. نافذة لإنشاء مشروع من نوع Test Project

يتم تحديد مجموعة من قوالب Visual C # -> اختبار في النافذة. من القوالب المعروضة ، يتم تحديد قالب مشروع "اختبار المشروع". يشار في حقل "الاسم" إلى اسم المشروع الذي سيختبر برنامجنا. تحتاج إلى تعيين ، على سبيل المثال ، TestMinApp. يقع المشروع في مجلد منفصل "E: \ Test \ MinApp".

يقع المشروع في مجلد منفصل E: \ Test \ MinApp

التين. 4. نص الوحدة النمطية UnitTest1.cs. نافذة الأداة المساعدة Solution Explorer مع عرض مشاريع TestMinApp و MinApp

4.2. هيكل الحل

كما يتضح من الشكل 4 ، تعرض الأداة المساعدة Solution Explorer بنية عناصر الحلول التي تحتوي على مشروعين:

  • مشروع MinApp. هذا مشروع تم إنشاؤه باستخدام قالب تطبيق وحدة التحكم مع وظيفة Min () التي تريد الاحتجاج عليها ؛
  • مشروع TestMinApp. تم تصميم هذا المشروع لاختبار ميزات مشروع MinApp. سيتم إدخال رمز البرنامج الذي يختبر وظيفة Min () في ملف مشروع UnitTest1 لمشروع TestMinApp.

يمكن تنفيذ كلا المشروعين بشكل مستقل عن بعضهما البعض.

4.3. نص الملف "UnitTest1.cs". السمات [TestMethod] و [TestClass]

في مشروع TestMinApp ، يكون ملف الاختبار UnitTest1.cs ذا أهمية أساسية. يحتوي هذا الملف على الأساليب التي ستختبر وظائف مشروع MinApp. يمكن أن يحتوي مشروع TestMinApp على أي عدد من الملفات التي تحتوي على اختبارات (على سبيل المثال ، UnitTest2.cs و UnitTest3.cs ، وما إلى ذلك).

قائمة ملف UnitTest1.cs التي تم إنشاؤها بواسطة MS Visual Studio 2010 هي كما يلي:

باستخدام النظام ؛ باستخدام System.Text. باستخدام System.Collections.Generic. باستخدام System.Linq. باستخدام Microsoft.VisualStudio.TestTools.UnitTesting ؛ مساحة الاسم TestMinApp {/// <summary> /// وصف الملخص للوحدة UnitTest1 /// </ summary> [TestClass] الفئة العامة في UnitTest1 {public UnitTest1 () {// // TODO: إضافة منطق المُنشئ هنا //} الخاص TestContext testContextInstance. /// <summary> /// الحصول على أو تعيين سياق الاختبار. /// </ summary> public TestContext TestContext {get {return testContextInstance؛ } set {testContextInstance = value؛ }} # Region سمات اختبار إضافية // يمكنك استخدام اختباراتك // // استخدام ClassInitialize // [ClassInitialize ()] // فراغ ثابت عام MyClassInitialize (TestContext testContext) {} // // استخدم ClassCleanup لتشغيل التعليمات البرمجية بعد تشغيل جميع الاختبارات في فئة // [ClassCleanup ()] // public static void MyClassCleanup () {} // // استخدام TestInitialize لتشغيل التعليمات البرمجية قبل تشغيل كل اختبار // [TestInitialize ()] // public void MyTestInitialize () {} // // استخدم TestCleanup لتشغيل التعليمات البرمجية بعد تشغيل كل اختبار // [TestCleanup ()] // public void MyTestCleanup ( ) {} // #endregion [TestMethod] public void TestMethod1 () {// // TODO: إضافة منطق الاختبار هنا //}}}

كما يمكن رؤيته من التعليمة البرمجية أعلاه ، يحتوي الملف على فئة تسمى UnitTest1. لدى الفئة طريقة عامة تسمى TestMethod1 (). قبل تطبيق الأسلوب TestMethod1 () ، يتم وضع السمة [TestMethod]. هذا يعني أنك بحاجة إلى إدخال الرمز الذي سيختبر وظائف مشروع MinApp في نص الأسلوب.

في الفصل الدراسي ، يمكنك إدخال أي عدد من الطرق التي ستختبر وظائف مختلفة من وحدات مختلفة. الشيء الرئيسي هو أن يتم تمييز هذه الطرق مع السمة [TestMethod].

4.4. إجراء تغييرات على نص الوحدة النمطية UnitTest1. تغيير اسم طريقة الاختبار

يمكنك تغيير أسماء الطرق وإضافة أساليب جديدة تم تمييزها بالسمة [TestMethod] في الوحدة النمطية UnitTest1.cs. بالنظر إلى هذا ، في نص الوحدة النمطية UnitTest1.cs ، تحتاج إلى إعادة تسمية الأسلوب TestMethod1 () إلى TestMin ().

بعد إجراء التغييرات ، سيكون النص المختصر للوحدة النمطية لملف UnitTest1.cs:

باستخدام النظام ؛ باستخدام System.Text. باستخدام System.Collections.Generic. باستخدام System.Linq. باستخدام Microsoft.VisualStudio.TestTools.UnitTesting ؛ مساحة الاسم TestMinApp {/// <summary> /// وصف موجز للوحدة UnitTest1 /// </ summary> [TestClass] الفئة العامة UnitTest1 {... [TestMethod] public void TestMin () {// // TODO: Add test المنطق هنا //}}}

4.5. ربط مشروع MinApp بمشروع TestMinApp

للوصول إلى وظيفة Min () (مشروع MinApp) من مشروع TestMinApp ، تحتاج إلى توصيل مساحة الاسم التي توجد بها هذه الوظيفة.

للقيام بذلك ، أولاً وقبل كل شيء ، تحتاج إلى الاتصال بقائمة السياق لمشروع TestMinApp. ثم في قائمة السياق تحتاج إلى استدعاء الأمر "إضافة مرجع ..." (الشكل 5).

 (الشكل 5)

التين. 5. فريق "إضافة الإحالة ..."

نتيجة لذلك ، سيتم فتح نافذة Add Reference ، والتي تحتاج فيها إلى اختيار مشروع MinApp.

نتيجة لذلك ، سيتم فتح نافذة Add Reference ، والتي تحتاج فيها إلى اختيار مشروع MinApp

التين. 6. نافذة "إضافة مرجع". ربط مشروع MinApp

بعد الإجراءات المكتملة ، ستكون وظائف مشروع MinApp متاحة للاستخدام في مشروع TestMinApp.

بعد الإجراءات المكتملة ، ستكون وظائف مشروع MinApp متاحة للاستخدام في مشروع TestMinApp

التين. 7. علامة التبويب المراجع مع مشروع MinApp متصل

4.6. إجراء تغييرات على نص الوحدة النمطية UnitTest1.cs
4.6.1. إضافة مساحة اسم MinApp إلى الوحدة النمطية UnitTest1.cs

في هذه الخطوة ، في الوحدة النمطية UnitTest1.cs ، تحتاج إلى إضافة مساحة اسم MinApp باستخدام التوجيه باستخدام:

باستخدام النظام ؛ باستخدام System.Text. باستخدام System.Collections.Generic. باستخدام System.Linq. باستخدام Microsoft.VisualStudio.TestTools.UnitTesting ؛ باستخدام MinApp. مساحة الاسم TestMinApp {...}

4.6.2. TestMin () نص الأسلوب

في نص أسلوب TestMin () ، أدخل التعليمات البرمجية التالية:

... [TestMethod] public void TestMin () {// // TODO: إضافة منطق الاختبار هنا // int min؛ دقيقة = البرنامج. دقيقة (3 ، 4 ، 5) ؛ تأكيد .AreEqual (2 ، دقيقة) ؛ } ...

4.7. الوحدة النمطية النص الوحدة النمطية

نص الوحدة النمطية UnitTest1.cs بأكمله كما يلي:

باستخدام النظام ؛ باستخدام System.Text. باستخدام System.Collections.Generic. باستخدام System.Linq. باستخدام Microsoft.VisualStudio.TestTools.UnitTesting ؛ باستخدام MinApp. مساحة الاسم TestMinApp {/// <summary> /// وصف الملخص للوحدة UnitTest1 /// </ summary> [TestClass] الفئة العامة في UnitTest1 {public UnitTest1 () {// // TODO: إضافة منطق المُنشئ هنا //} الخاص TestContext testContextInstance. /// <summary> /// الحصول على أو تعيين سياق الاختبار. /// </ summary> public TestContext TestContext {get {return testContextInstance؛ } set {testContextInstance = value؛ }} # Region سمات اختبار إضافية // يمكنك استخدام اختباراتك // // استخدام ClassInitialize // [ClassInitialize ()] // فراغ ثابت عام MyClassInitialize (TestContext testContext) {} // // استخدم ClassCleanup لتشغيل التعليمات البرمجية بعد تشغيل جميع الاختبارات في فئة // [ClassCleanup ()] // public static void MyClassCleanup () {} // // استخدام TestInitialize لتشغيل التعليمات البرمجية قبل تشغيل كل اختبار // [TestInitialize ()] // public void MyTestInitialize () {} // // استخدم TestCleanup لتشغيل التعليمات البرمجية بعد تشغيل كل اختبار // [TestCleanup ()] // public void MyTestCleanup ( ) {} // #endregion [TestMethod] public void TestMin () {// // TODO: إضافة منطق الاختبار هنا // int min؛ دقيقة = البرنامج. دقيقة (3 ، 4 ، 5) ؛ تأكيد .AreEqual (2 ، دقيقة) ؛ }}}

5. قم بإجراء الاختبار وتحقق من نتيجة الاختبار

في Microsoft Visual Studio 2010 ، يتم تطبيق قائمة خاصة من الأوامر تسمى Test للعمل مع اختبارات الوحدات.

لتشغيل اختبار التنفيذ ، حدد أحد الأوامر.

اختبار -> تشغيل -> الاختبارات في السياق الحالي

أو

اختبار -> تشغيل -> جميع الاختبارات في الحل

كما هو مبين في الشكل 8.

كما هو مبين في الشكل 8

التين. 8. اتصل بأمر start test واعرض النتيجة.

بعد إجراء الاختبار ، يمكن عرض النتيجة في أسفل نافذة نتائج الاختبار. كما يتبين من الشكل ، لم يتم اجتياز الاختبار. هذا منطقي ، لأنه في دالة Assert.AreEqual () نقوم بمقارنة الأرقام 2 و 3 ، وهي مختلفة. هنا ، يتم تقديم الرقم 2 خصيصًا بدلاً من 3.

إذا قمت بدلاً من الرقم 2 بإدخال الإجابة الصحيحة - الرقم 3 (الحد الأدنى بين 3 و 4 و 5) ، فسيتم اجتياز الاختبار (الشكل 9). في هذه الحالة ، سيكون نص أسلوب TestMin () كما يلي:

... [TestMethod] public void TestMin () {// // TODO: إضافة منطق الاختبار هنا // int min؛ دقيقة = البرنامج. دقيقة (3 ، 4 ، 5) ؛ تأكيد .AreEqual (3 ، دقيقة) ؛ } ...

يظهر إطار النتيجة في الشكل 9.

يظهر إطار النتيجة في الشكل 9

التين. 9. نتيجة اختبار للقضية ، إذا قمت بإدخال الإجابة الصحيحة

الآن يمكننا أن نستنتج أن الدالة Min () لهذه الحالة تعمل بشكل صحيح.

6. النتيجة. التفاعل بين المشاريع

في هذه الورقة ، يتم تشكيل مشروعين في الحل. يحتوي مشروع MinApp واحد على وظيفة Min () التي تريد اختبارها. يحتوي المشروع الثاني TestMinApp على طرق الاختبار.

في Microsoft Visual Studio 2010 ، يتم إطلاق كل مشروع باستخدام أوامر قائمة مختلفة. لذلك ، يتم إطلاق مشروع MinApp بالطريقة القياسية من قائمة التشغيل. ويتم إطلاق مشروع TestMinApp من قائمة Test الخاصة.

موضوعات ذات صلة