إطار عمل اختبار الوحدة

مكتمل

يمكنُك استخدَام SysTest Framework والذي يسمح لك بكتابة كود اختبار الوحدة، ودمج الاختبارات، ثم تشغيل الاختبار لأتمتة اختبار الكود. يمكنُك إعداد SysTest Framework لإنشَاء اختبار وحدة نمطية من الكود. يمكنُك أيضًا استيراد تسجيلات مسجل المهام إلى Visual Studio لإنشَاء كود اختبار. يتم توفِير مزيد من المعلومَات حول مسجل المهام لاحقًا فِي هَذه الوحدَة.

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

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

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

مخطط لعملية نموذج اختبار الوحدة النمطية من اختبارات المؤلف ودمج الاختبارات ثم تنفِيذها.

تَمرين - العَمَل مَع إطَار عَمل حَالة الاختبار

‏‫مُلاحظَة‬

لإكمَال هَذا التَمرين بنجَاحٍ، يجبُ استخدَام بيئةِ عرض توضيحي لتطبيقات التمويل والعَمَليات مَع بيَانَات العرض التوضيحي لشَركَة Contoso وبيَانَات وحدة إدَارَة الأسطول.

لنَشر عيِّنة مَجموعة البيَانَات لإدَارَة الأسطول، اتبَع الخُطوات التَالِية.

  1. فِي تطبيقات التمويل والعَمَليات، انتقِل إلى إدَارَة الأسطول > الإعداد > إعدادات الأسطول.
  2. فِي علامة التبويب البيَانَات ، حدّد زر إنشَاء لإنشَاء مجموعةِ بيَانَات نموذجية لإدَارَة الأسطول.
  3. تظهرُ رسَالة عِند إنشَاء البيَانَات بنجاح.

لقطة شاشة لرسالة البيانات النموذجية التي تم إنشاؤها.

أولاً، يمكنُك إنشَاء مَشرُوعٍ جديدٍ لإجراء اختبار وحدةٍ فِيه. لإنشَاء مشروع جديد، اتبع هذه الخطوات.

  1. افتَح Visual Studio كمسؤول.
  2. حدّد مِلف > جَدِيد > مَشرُوع.
  3. فِي صفحة إنشَاء مشروع جَدِيد، ابحَث عَن قالب مشروع العَمَليات المَالية. لقطة شاشة تُظهر صفحة إنشَاء مشروع جديد.
  4. حدّد نموذج مشروع تطبيقات التمويل والعَمَليات، وحدّدها، ومن ثم حدّد التالي.
  5. فِي حقل اسم المشروع، أدخل MyTestCase.
  6. حدّد إنشَاء.
  7. فِي نافذة مستكشف الحلول، انقر بزر المَاوس الأيمن فوق مشروع MyTestCase، وحدّد الخصائص.
  8. فِي صفحة الخصائص، قم بتغيير حقل النموذج إلى إدارة الأسطول.
  9. حدّد تطبيق، ثم حدّد مُوَافق.

الآن، يجبُ عَليك إضَافة فئة إلى مشروعك، وللقيَام بهَذَا اتبَع الخُطُوات التَالِية.

  1. انقر بزر المَاوس الأيمن فوق MyTestCase فِي مستكشف الحلول ومن ثم حدّد إضافة صنف جديد>.

  2. إذا ظَهَرَت صفحة إضافة عنصر جديد فِي طَريقةِ عرض مضغوطة مِثل الصُورة التَالية، فحدّد إظهار جميع القوالب.

    لقطة شاشة لطريقة عرض الضغط.

  3. قم بتوسعة عُقدة أصناف Dynamics 365 فِي الجزء الأيسر، حدّد الرمز.

  4. فِي حقل الاسم أدخل MyTestClass1.

  5. حدّد إضافة لإضافة الفئة إلى مشروعك.

بَعد ذلك، تكتبُ رمزًا سيقومُ بتشغيلِ اختِبارٍ عند تشغيله فِي Visual Studio، للقيام بذلك، اتبع الخطوات التَالِية.

  1. فِي محرر الكود، أدخل الكود التالي:

    //Test unit class must be public and extend the SysTestCase class
    class MyTestClass1 extends SysTestCase
    {
    public void setup()
    {
        // Reset the test data to be sure things are clean
        FMDataHelper::main(null);
    }
    
    [SysTestMethodAttribute]
    // Using the [SysTestMethodAttribute] because the name of the class does not begin with “Test”.
    public void testFMTotalsEngine()
    {
        FMRental rental;
        FMTotalsEngine fmTotals;
        FMRentalTotal fmRentalTotal;
        FMRentalCharge rentalCharge;
        FMRentalTotal expectedtotal;
        str rentalID = '000022';
    
        // Find a known rental
        rental = FMRental::find(rentalID);
    
        // Get the rental charges associated with the rental
        // Data is seeded randomly, so this will change for each run
        select sum(ExtendedAmount) from rentalCharge
         where rentalCharge.RentalId == rental.RentalId;
    
        fmTotals = FMTotalsEngine::construct();
        fmTotals.calculateRentalVehicleRate(rental);
    
        // Get the totals from the engine
        fmRentalTotal = fmTotals.totals(rental);
    
        // Set the expected amount
        expectedTotal = rental.VehicleRateTotal + rentalCharge.ExtendedAmount;
    
        this.assertEquals(expectedTotal,fmRentalTotal);
    
    }
    
    [SysTestMethodAttribute]
    public void testFMCarValidateField()
    {
        FMCarClass fmCar;
    
        fmCar.NumberOfDoors = -1;
        this.assertFalse(fmCar.validateField(Fieldnum("FMCarClass", "NumberOfDoors")));
    }
    
    }
    
  2. حِفظ الفئة. تتوفر حالتا اختبار فِي "مستكشف الاختبار".

  3. إذا لم يكن مستكشف الاختبار مرئيًا، فحدّد عرض > مستكشف الاختبار فِي Visual Studio. لقطة شاشة لمستكشف الاختبار.

  4. انقر بزر المَاوس الأيمن فوق المشروع MyTestCase فِي مستكشف الحلول وحدّد إنشَاء.

  5. فِي نَافذة مستكشف الاختبار، حدّد رمز الاختبار لعرض اختباراتك، ثم حدّد أيقونة التشغيل لتشغيل اختباراتك.
    لَقطَة شَاشة توضح رموز الاختبار.

  6. يمكنُك عَرضُ نتَائِج الاختِبَار فِي نَافذة مستكشف النصوص. لقطة شاشة تُظهر الاختبار مكتمل.