Skip to content

8. الملاحق

8.1. أين يمكنني العثور على Spring؟

الموقع الرئيسي لـ Spring هو [http://www.springframework.org/]. هذا هو الموقع الخاص بإصدار Java. أما إصدار .NET، الذي لا يزال قيد التطوير (أبريل 2005)، فيمكن العثور عليه على [http://www.springframework.net/].

Image

موقع التنزيل موجود على [SourceForge]:

Image

بمجرد تنزيل ملف zip أعلاه، قم بفك ضغطه:

Image

في هذا المستند، لم نستخدم سوى محتويات مجلد [bin]:

Image

في مشروع Visual Studio الذي يستخدم Spring، يجب عليك دائمًا القيام بأمرين:

  • وضع الملفات المذكورة أعلاه في مجلد [bin] الخاص بالمشروع
  • إضافة مرجع إلى تجميع [Spring.Core.dll] إلى المشروع

8.2. أين يمكنك العثور على NUnit؟

الموقع الإلكتروني الرئيسي لـ NUnit هو [http://www.nunit.org/]. الإصدار المتاح في أبريل 2005 هو 2.2.0:

Image

قم بتنزيل هذا الإصدار وتثبيته. يؤدي التثبيت إلى إنشاء مجلد يحتوي على واجهة الاختبار الرسومية:

الجزء المثير للاهتمام موجود في مجلد [bin]:

Image

Image

يشير السهم أعلاه إلى أداة الاختبار الرسومية. أضاف التثبيت أيضًا عناصر جديدة إلى مستودع تجميع Visual Studio، والتي سنستكشفها الآن.

لنقم بإنشاء مشروع Visual Studio التالي:

توجد الفئة قيد الاختبار في [Person.vb]:

Image

Public Class Personne

    ' private fields
    Private _nom As String
    Private _age As Integer

    ' default builder
    Public Sub New()
    End Sub

    ' properties associated with private fields
    Public Property nom() As String
        Get
            Return _nom
        End Get
        Set(ByVal Value As String)
            _nom = Value
        End Set
    End Property

    Public Property age() As Integer
        Get
            Return _age
        End Get
        Set(ByVal Value As Integer)
            _age = Value
        End Set
    End Property

    ' identity chain
    Public Overrides Function tostring() As String
        Return String.Format("[{0},{1}]", nom, age)
    End Function

    ' init method
    Public Sub init()
        Console.WriteLine("init personne {0}", Me.ToString)
    End Sub

    ' close method
    Public Sub close()
        Console.WriteLine("destroy personne {0}", Me.ToString)
    End Sub

End Class

توجد فئة الاختبار في [NunitTestPersonne-1.vb]:

Imports System
Imports NUnit.Framework

<TestFixture()> _
 Public Class NunitTestPersonne

    ' object tested
    Private personne1 As Personne

    <SetUp()> _
    Public Sub init()
        ' create an instance of Person
        personne1 = New Personne
        ' log
        Console.WriteLine("setup test")
    End Sub

    <Test()> _
    Public Sub demo()
        ' log screen
        Console.WriteLine("début test")
        ' init person1
        With personne1
            .nom = "paul"
            .age = 10
        End With
        ' tests
        Assert.AreEqual("paul", personne1.nom)
        Assert.AreEqual(10, personne1.age)
        ' log screen
        Console.WriteLine("fin test")
    End Sub

    <TearDown()> _
    Public Sub destroy()
        ' follow-up
        Console.WriteLine("teardown test")
    End Sub

End Class

هناك عدة أمور يجب ملاحظتها:

  • يتم تعيين سمات للطرق مثل <Setup()> و<TearDown()>، ...
  • لكي يتم التعرف على هذه السمات، يجب أن يكون ما يلي صحيحًا:
    • يجب أن يشير المشروع إلى التجميع [nunit.framework.dll]
    • تستورد فئة الاختبار مساحة الاسم [NUnit.Framework]

تتم إضافة المرجع بالنقر بزر الماوس الأيمن على [References] في مستكشف الحلول:

Image

يجب أن يظهر التجميع [nunit.framework.dll] في القائمة إذا تم تثبيت [NUnit] بنجاح. ما عليك سوى النقر المزدوج على التجميع لإضافته إلى المشروع:

Image

بمجرد الانتهاء من ذلك، يجب أن تستورد فئة الاختبار [NunitTestPersonne] مساحة الاسم [NUnit.Framework]:

Imports NUnit.Framework

وبذلك يتم التعرف على سمات فئة الاختبار [NunitTestPersonne].

  • تحدد السمة <Test()> الطريقة المراد اختبارها
  • تحدد السمة <Setup()> الطريقة التي سيتم تنفيذها قبل كل طريقة يتم اختبارها
  • تحدد السمة <TearDown()> الطريقة التي سيتم تنفيذها بعد كل طريقة يتم اختبارها
  • تسمح لك طريقة Assert.AreEqual باختبار تساوي كيانين. هناك العديد من الطرق الأخرى من النوع Assert.xx.
  • توقف أداة NUnit تنفيذ الطريقة التي يتم اختبارها بمجرد فشل طريقة [Assert] وتعرض رسالة خطأ. وإلا، فإنها تعرض رسالة نجاح.

دعونا نُهيئ مشروعنا لإنشاء مكتبة DLL:

Image

سيتم تسمية ملف DLL الذي تم إنشاؤه [nunit-demos-1.dll] وسيتم وضعه افتراضيًا في مجلد [bin] الخاص بالمشروع. لنقم ببناء مشروعنا. نحصل على ما يلي في مجلد [bin]:

Image

الآن دعونا نطلق أداة الاختبار الرسومية Nunit. تذكر أنها موجودة في <Nunit>\bin واسمها [nunit-gui.exe]. يشير <Nunit> إلى مجلد تثبيت [Nunit]. نحصل على الواجهة التالية:

Image

دعونا نستخدم خيار القائمة [File/Open] لتحميل ملف DLL [nunit-demos-1.dll] من مشروعنا:

Image

يمكن لـ [Nunit] اكتشاف فئات الاختبار الموجودة في ملف DLL الذي تم تحميله تلقائيًا. هنا، تجد فئة [NunitTestPersonne]. ثم تعرض جميع أساليب الفئة التي تحتوي على السمة <Test()>. يتيح لك زر [Run] تشغيل الاختبارات على الكائن المحدد. إذا كانت هذه هي فئة [NunitTestPersonne]، فسيتم اختبار جميع الأساليب المعروضة. يمكنك اختبار طريقة معينة عن طريق تحديدها والنقر على [Run]. دعونا نقوم بتشغيل الفئة:

Image

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

تعرض نافذة [Console.Out] على اليمين مخرجات الشاشة الناتجة عن الطرق التي تم اختبارها. هنا، أردنا متابعة تقدم الاختبار:

1
2
3
4
setup test
test start
end of test
test teardown
  • يُظهر السطر 1 أن طريقة السمة <Setup()> يتم تنفيذها قبل الاختبار
  • يتم إنشاء السطرين 2 و3 بواسطة الطريقة [demo] التي يتم اختبارها (انظر الكود أعلاه)
  • يُظهر السطر 4 أن طريقة السمة <TearDown()> يتم تنفيذها بعد الاختبار