الإرشادات التفصيلية: إنشاء و تشغيل اختبارات الوحدة

هذه معاينة الخطوة التي من خلال إنشاء، قيد التشغيل، و تخصيص سلسلة من الاختبارات باستخدام Microsoft Visual Studio 2010. بدأت مع C# للمشروع الذي هو تحت التطوير، قم بإنشاء اختبار exercهوe هذا الرمز الخاص به، قم بتشغيل الاختبارات، وفحصها. ثم يمكنك تغيير تعليمات برمجية مشروع و إعادة تشغيل الاختبارات.

ملاحظة

لمعلومات حول كيفية إلى تشغيل الاختبارات من سطر الأوامر، راجع الإرشادات التفصيلية: باستخدام الأداة المساعدة "اختبار سطر الأوامر.

في هذه الإرشادات التفصيلية, سوف تقوم بإكمال المهام التالية:

  • تحضير مشروع "حساب البنك" إلى تستخدم في معاينة.

  • فتح مشروع موجود.

  • قم بإنشاء وحدة الاختبارات لعام و الأساليب الخاصة.

  • قم بتشغيل هذه الاختبارات تشغيل تعليمات برمجية.

  • بحث و تصحيح الأخطاء في الاختبارات.

  • بحث و تصحيح أخطاء في تعليمات برمجية.

المتطلبات الأساسية

تحضير الإرشادات التفصيلية

لتقوم بتحضير الإرشادات التفصيلية

  1. قم بفتح Visual Studio 2010 Premium.

  2. من القائمة File (ملف)، أشر إلى New (جديد)، ثم انقر فوق Project (مشروع).

    يظهر مربع الحوار مشروع جديد.

  3. تحت القوالب المثبتة، انقر فوق Visual C#‎ .

  4. في قائمة أنواع التطبيقات، انقر فوق مكتبة فئة .

  5. في المربع الاسم ، اكتب البنك و ثم انقر فوق ‏‏موافق .

    ملاحظة

    إذا كان اسم "بنك" هو الاستخدام بالفعل، اختر اسماً آخر للمشروع.

    مشروع جديد للبنك هو تاريخ الإنشاء وفتح dهوplayed في "مستكشف الحل" مع ملف Class1.cs في محرر تعليمات برمجية.

    ملاحظة

    إذا كان Class1.cs ملف غير فتحه في محرر تعليمات برمجية، انقر نقراً مزدوجاً فوق Class1.cs ملف في "مستكشف الحل" لفتحه.

  6. قم بنسخ تعليمات برمجية المصدر من منع التحذيرات بواسطة باستخدام السمة SuppressMessage في.

  7. قم باستبدال المحتويات الأصلية ل Class1.cs مع تعليمات برمجية من منع التحذيرات بواسطة باستخدام السمة SuppressMessage في.

  8. من القائمة Build (إنشاء)، انقر فوق Build Solution (إنشاء الحل).

لديك الآن مشروع باسم البنك. يحتوي على تعليمات برمجية المصدر إلى الاختبار و إلى ols إلى اختباره مع. مساحة الاسم للبنك، BankAccountNS، يحتوي على الجمهور فئة BankAccount ، الأساليب التي سيتم اختبار في الإجراءات التالية.

إنشاء اختبار وحدة

المتطلبات المسبقة: اتبع الخطوات الموجودة في هذه العملية، تحضير الموضوع معاينة.

إلى إنشاء اختبار وحدة

  1. إذا كان Class1.cs ملف غير فتحه في محرر تعليمات برمجية، في "مستكشف الحل"، انقر نقراً مزدوجاً فوق Class1.cs في ملف في مشروع البنك.

  2. In the BankAccount class in theClass1.cs file, scroll to the Debit() method.

  3. Debit() الطريقة بزر الماوس الأيمن فوق و حدد إنشاء اختبارات الوحدة.

    يتم عرض مربع الحوار إنشاء اختبارات وحدة.

    تحت الحل الحالي، يظهر بنية شجرة الفئة و هيكلي لعضو من تجميع الذي houses BankAccount الفئة. يمكنك استخدام هذه الصفحة لإنشاء وحدة الاختبارات لتحديد أي من هؤلاء الأعضاء، و لاختيار مشروع اختبار الذي تريد اختبار الوحدة التي تم إنشاؤها لوضعها.

    في بنية شجرة فقط من Debit() أسلوب محدداً. اتركه محدداً وأيضا محدد Credit() الأسلوب.

  4. تحديد إنشاء Visual C# اختبار مشروع جديد إخراج المشروع،.

  5. انقر فوق إعدادات.

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

  6. في صندوق الحوار إنشاء اختبارات الوحدة ، انقر فوق ‏‏موافق .

    يتم عرض مربع حوار مشروع اختبار جديد .

  7. أقبل الاسم الافتراضي و ثم انقر فوق إنشاء.

    Th هو يقوم بإنشاء مشروع يسمى TestProject1، الذي هو dهوplayed في "مستكشف الحل".

    ملف يسمى BankAccountTest.cs، والذي يحتوي على فصل دراسي اختبار هو تمت الإضافة إلى TestProject1. الفئة هو تعبئة بخاصية TestContext والأساليب لاختبار Debit() وأساليب Credit() .

    ملاحظة

    كل أسلوب اختبار هو تلقائياً بتعيين السمة TestMethod(). يتوافق كل اختبار إلى أسلوب مفرد في تعليمات برمجية تحت الاختبار الذي تريده إلى اختبار. يتم وضع الأساليب الاختبار في اختبار للفئات التي هو تعيين السمة TestClass().

  8. في BankAccountTest.cs، قم بتحديد قيم للمتغيرات إلى يتم اختبارها. قم بالتمرير إلى من DebitTest أسلوب، حيث ترى // TODOالأسطر التي تشير إلى متغيرات لمجموعة.

  9. لمعرفة قيم لاستخدامه في الأسلوب DebitTest، فتح في Class1.cs ملف وقم بالتمرير إلى الطريقة الرئيسي. لاحظ أنه اسم العميل هو تهيئة إلى السيد Bryan Walton، حساب الرصيد هو تهيئة إلى 11.99 ، الطريقة الاعتماد هو تسمى بمعلمة و 5.77 أسلوب المدين هو تسمى بمعلمة 11.22 . ولذلك، إذا كان هذا الحساب يبدأ ب توازن من 11.99 ، مكالمة إلى الطريقة المدين أثناء تمرير 11.22 يجب أن يعطيك جديد توازن من 0.77 .

    ملاحظة

    سيتم استخدام هذا المتوقع توازن القيمة (0.77) فيما بعد في هذه معاينة.

  10. في BankAccountTest.cs ملف، قم بالتمرير إلى DebitTest الأسلوب.

  11. قم بتعيين القيم التالية:

    BankAccount target = new BankAccount("Mr. Bryan Walton", 11.99);
    double amount = 11.22;
    
  12. في CreditTest الطريقة، إضافة "Mr. Bryan Walton"، 11.99) إلى BankAccount الجديدة.

  13. حفظ في BankAccountTest.cs ملف.

إنشاء رمز مصدر ملف الذي يحتوي على اختبارات لمشروع البنك. أنت الآن جاهز إلى تشغيل الاختبارات في BankAccountTest الفئة في تعليمات برمجية الخاصة بالمشروع البنك.

تشغيل و يخصص اختبار وحدة

المتطلبات المسبقة: قم بإجراء الخطوات في إجراء إنشاء على اختبار وحدة .

إلى التشغيل و cusإلىmize اختبار وحدة

  1. في قائمة اختبار ، انقر فوق Windows و طريقة عرض الاختبار حدد .

    يتم عرض نافذة عرض اختبار.

  2. يمين-انقر فوق DebitTest تشغيل تحديد والنقر.

    إذا كان الإطار نتائج اختبار هو غير مسبقاً مفتوح، فتحه الآن. المدين اختبار اختبار يعمل.

    في العمود النتيجة في الإطار نتائج اختبار ، قم باختبار حالة هو dهوplayed ك قيد التشغيل أثناء الاختبار هو قيد التشغيل. بعد اختبار انتهاء التشغيل، النتيجة اختبار إلى من Inconclusive.

  3. في الإطار اختبار النتائج ، انقر نقراً مزدوجاً فوق الصف الذي يمثل الاختبار و ثم انقر فوق عرض تفاصيل نتائج الاختبار.

  4. في الصفحة اختبار نتائج تفاصيل، هناك رسالة الخطأ "فشل Assert.Inconclusive. أسلوب الذي لا يقوم بإرجاع القيمة لا يمكن التحقق منها." للعمل نحو إنشاء اختبار ناجح، ابدأ بالبحث عن و تقييم هذا Assert العبارة.

  5. للبحث عن اختبار الأسلوب الذي يحتوي على Assert بيان، بفتح الملف BankAccountاختبار.cs وقم بالتمرير إلى Debitاختبار() الطريقة.

  6. العبارة Assert هو السطر أخير في من DebitTest أسلوب. يقوم بقراءة كما يلي:

    Assert.Inconclusive("A method that does not return a value cannot be verified.");
    

    تعليق خارج هذا Assert كشف.

  7. إذا قمت بتشغيل الاختبار الآن، فإنه سيتم إعطاء نتيجة الممررة ، ولكن فقط لأن وهي تختبر لأي شيء. يجب عليك إضافة المتوقع رمز اختبار للنتائج. قم بإضافة العبارة التالية إلى النهاية DebitTest الطريقة:

    Assert.AreEqual((System.Convert.ToDouble(0.77)), target.Balance, 0.05);
    

    يقارن هذا البيان النتيجة المتوقعة (0.77) مع النتيجة الفعلية من استدعاء إلى توازن أسلوب BankAccount الفئة. إذا كانت القيمتين غير متساوية، ترجع Assert خطأ ، الأمر الذي يجعل اختبار الفشل.

    ملاحظة

    يتضمن هذا Assert عبارة معلمة ثالث، دلتا ، بقيمة 0.05. معلمة دلتا هو المطلوبة في ترتيب هو زيادة التحميل من Assert.AreEqual الطريقة؛ فإنه يعوض التوازن من أجل التقريب الخطأ المضمنة في أنواع النقطة العائمة مثل الحصول على ثنائية.

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

تشغيل تعليمات برمجية الخاصة بك لوحدة اختبار و الإصلاح

المتطلبات المسبقة: قم بإجراء الخطوات في إجراء تشغيل يخصص و "اختبار الوحدة".

إلى تشغيل اختبار وحدة وتصحيح تعليمات برمجية

  1. تشغيل في المديونية اختبار مرة أخرى: DebitTest() الطريقة بزر الماوس الأيمن فوق ملف BankAccountTest.cs، وثم انقر فوق تشغيل الاختبارات.

    في العمود النتيجة في نافذة "نتائج اختبار"، قم باختبار حالة هو dهوplayed ك قيد التشغيل أثناء الاختبار هو قيد التشغيل. بعد اختبار انتهاء التشغيل، النتيجة اختبار إلى فشل.

  2. في الإطار "نتائج اختبار"، يمين-انقر فوق الصف الذي يمثل الاختبار ومن ثم انقر فوق عرض تفاصيل نتائج الاختبار.

    يؤدي هذا إلى فتح صفحة "تفاصيل نتائج الاختبار"، الذي يعرض رسالة خطأ "فشل Assert.AreEqual. من المتوقع وجود اختلاف لا أكبر من <0.05> بين القيمة المتوقعة <0.77> و <23.21> القيمة الفعلية ". يبدو أن هذه الأرقام للإشارة إلى عملية حسابية خاطئ. لأن الاختبارات DebitTest أسلوب BankAccountTest فئة المدين أسلوب BankAccount فئة، ابدأ بالتحقق من أسلوب المديونية.

  3. فتح في Class1.cs ملف وقم بالتمرير إلى أسلوب المديونية.

  4. لاحظ التعيين التالية:

    m_balance += amount;
    

    يضيف هذا الواجب مقداراً إلى توازن عندما، في على أسلوب المدين، يجب أن يتم طرح. قم بتغيير هذا السطر إلى قراءتها كما يلي:

    m_balance -= amount;
    
  5. المدين بتشغيل اختبار مرة أخرى.

    نتيجة عمود من "نتائج الاختبار" يعرض نافذة الممررة من DebitTest.

    ملاحظة

    لم إلى إعادة بناء مشروع اختبار بعد تغيير تعليمات برمجية المصدر بسبب تشغيل اختبار صمت بناء مشروع.

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

إنشاء اختبار وحدة تشغيل و لأسلوب خاص

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

إلى إنشاء وتشغيل اختبار وحدة لأسلوب خاص

  1. فتح في Class1.cs ملف في مشروع البنك.

  2. FreezeAccount() الطريقة بزر الماوس الأيمن فوق و حدد إنشاء اختبارات الوحدة.

    يؤدي ذلك إلى عرض صندوق الحوار إنشاء اختبارات الوحدة.

    في بنية شجرة dهوplayed، فقط FreezeAccount() الطريقة هو المحدد.

  3. (اختياري) عامل تصفية، انقر و قم بإلغاء تحديد عناصر عرض بدون-العامة. لاحظ أنه FreezeAccount() الطريقة هو تمت إزالته من lهوt الطرق التابعة للفئة BankAccount. انقر فوق عامل تصفية مرة ثانية، وحدد عناصر عرض بدون-عام إلى re-عرض FreezeAccount() الأسلوب.

  4. تأكد من أن FreezeAccount() الطريقة هو محددة، ومن ثم انقر فوق ‏‏موافق .

    يؤدي هذا إلى إنشاء ملف ملحق خاص جديد يسمى Bank.accessor. يحتوي على وظائف "واصف الوصول الخاصة التي اختبار يستخدم بشكل غير مباشر باستدعاء الوظائف الخاصة في فئة BankAccount. يمكنك مشاهدة الجديد ملف عرض في مستكشف الحل "في مجلد" المراجع "اختبار".

  5. افتح الملف BankAccountTest.cs وقم بالتمرير إلى من FreezeAccountTest() أسلوب.

  6. قم بتغيير الرمز FreezeAccountTest() الطريقة حيث يقرأ كـ يتبع. يتم الإشارة إلى المناطق الجديدة أو المتغيرة:

    public void FreezeAccountTest()
    {
        BankAccount_Accessor target = new BankAccount_Accessor("Mr. Bryan Walton", 11.99); // TODO: Initialize to an appropriate value
    target.FreezeAccount(); 
        // Assert.Inconclusive("A method that does not return a value cannot be verified.");
        
        bool creditAccount = false; // False means account could be credited: Fail test. 
        // Try to credit account
        try
        {
            target.Credit(1.00); 
        }
        catch (System.Exception)
        {
            // Threw exception. FreezeAccount worked correctly: Pass test. 
            creditAccount = true;
        }
        
        // Assert fails if 'creditAccount' condition is false. Fail test.
        Assert.IsTrue(creditAccount, "Was able to credit account.");
    }
    
  7. قم بتشغيل الاختبار FreezeAccountTest.

    في العمود النتيجة في نافذة "نتائج اختبار"، تظهر حالة الاختبار النهائي ك الممررة. Th هو هو المتوقع نتيجة لأن الاختبار تسمى Credit() الطريقة بعد تجميد الحساب بواسطة استدعاء FreezeAccount() الأسلوب.

لقد قمت بإضافة أسلوب خاص، تاريخ الإنشاء اختبار وحدة جديدة لها، و تشغيل الاختبار. يمكنك تشغيله إضافى الأوقات، استخدام قيم borderline غير ذلك، مثل كـ 15.00، ل balanceالمتغير.

الخطوات التالية

عند تشغيل الاختبارات على تعليمات برمجية في تجميع، يمكن رؤية نسبة المشروع تعليمات برمجية التي هو يتم اختباره من خلال تجميع بيانات التغطية بواسطة رمز. لمزيد من المعلومات، راجع الإرشادات التفصيلية: CA1506:.

يمكنك تشغيل الاختبارات في سطر الأوامر بدلاً من Visual Studio. لمزيد من المعلومات، راجع الإرشادات التفصيلية: باستخدام الأداة المساعدة "اختبار سطر الأوامر.

إذا كنت تستخدم Visual Studio 2010 Ultimate، يمكنك إنشاء اختبارات الحمل إلى عزل مشاكل الأداء والتحمل استخدام اختبارات الوحدة.

Walkthrough: Creating and Running a Load Test Containing Unit Tests

راجع أيضًا:

المهام

منع التحذيرات بواسطة باستخدام السمة SuppressMessage في