Skip to content

8. پیوست‌ها

8.1. کجا می‌توانم Spring را پیدا کنم؟

وب‌سایت اصلی Spring در [http://www.springframework.org/] قرار دارد. این وب‌سایت مربوط به نسخهٔ جاوا است. نسخهٔ .NET که در حال توسعه است (آوریل ۲۰۰۵) را می‌توانید در نشانی [http://www.springframework.net/] بیابید.

Image

وب‌سایت دانلود در آدرس [SourceForge] قرار دارد:

Image

پس از دانلود فایل زیپ بالا، آن را از حالت فشرده خارج کنید:

Image

در این سند، ما فقط از محتویات پوشه [bin] استفاده کرده‌ایم:

Image

در یک پروژهٔ Visual Studio که از Spring استفاده می‌کند، دو کاری هست که همیشه باید انجام دهید:

  • فایل‌های بالا را در پوشه [bin] پروژه قرار دهید
  • یک مرجع به اسمبلی [Spring.Core.dll] به پروژه اضافه کنید

8.2. NUnit را از کجا می‌توانم پیدا کنم؟

وب‌سایت اصلی Nunit، [http://www.nunit.org/] است. نسخه‌ای که در آوریل ۲۰۰۵ در دسترس بود، ۲.۲.۰ است:

Image

این نسخه را دانلود و نصب کنید. نصب، پوشه‌ای حاوی نسخهٔ آزمایشی گرافیکی ایجاد می‌کند:

بخش جالب در پوشه [bin] قرار دارد:

Image

Image

پیکان بالا به ابزار تست گرافیکی اشاره می‌کند. نصب همچنین موارد جدیدی را به مخزن assembly ویژوال استودیو اضافه کرده است که اکنون آن‌ها را بررسی خواهیم کرد.

بیایید پروژهٔ زیر را در ویژوال استودیو ایجاد کنیم:

کلاسی که در حال آزمایش است در [Personne.vb] قرار دارد:

Image

Public Class Personne

     ' fields خصوصی
    Private _nom As String
    Private _age As Integer

     ' سازندهٔ پیش‌فرض
    Public Sub New()
    End Sub

     ' ویژگی‌های مرتبط با فیلدهای خصوصی
    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

     ' رشته هویت
    Public Overrides Function tostring() As String
        Return String.Format("[{0},{1}]", nom, age)
    End Function

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

     ' متد بستن
    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

     ' شیء تحت تست
    Private personne1 As Personne

    <SetUp()> _
    Public Sub init()
         ' یک نمونه از Person ایجاد می‌شود
        personne1 = New Personne
         ' لاگ
        Console.WriteLine("setup test")
    End Sub

    <Test()> _
    Public Sub demo()
         ' لاگ صفحه
        Console.WriteLine("début test")
         ' ابتدایی‌سازی person1
        With personne1
            .nom = "paul"
            .age = 10
        End With
         ' آزمایش‌ها
        Assert.AreEqual("paul", personne1.nom)
        Assert.AreEqual(10, personne1.age)
         ' گزارش صفحه
        Console.WriteLine("fin test")
    End Sub

    <TearDown()> _
    Public Sub destroy()
         ' نظارت
        Console.WriteLine("teardown test")
    End Sub

End Class

چند نکته قابل توجه وجود دارد:

  • متدها دارای ویژگی‌هایی هستند مانند <Setup()>, <TearDown()>, …
  • برای اینکه این ویژگی‌ها شناسایی شوند، باید شرایط زیر برقرار باشد:
    • پروژه باید به اسمبلی [nunit.framework.dll] ارجاع دهد
    • کلاس تست فضای نام [NUnit.Framework] را وارد می‌کند

مرجع با کلیک راست روی [References] در Solution Explorer اضافه می‌شود:

Image

اگر نصب [Nunit] با موفقیت انجام شده باشد، assembly با نام [nunit.framework.dll] باید در لیست ظاهر شود. برای افزودن آن به پروژه، کافی است روی آن دوبار کلیک کنید:

Image

پس از انجام این کار، کلاس تست [NunitTestPersonne] باید فضای نام [NUnit.Framework] را وارد کند:

Imports NUnit.Framework

سپس باید ویژگی‌های کلاس تست [NunitTestPersonne] شناسایی شوند.

  • ویژگی <Test()> متدی را که باید آزمایش شود مشخص می‌کند
  • ویژگی <Setup()> متدی را که باید قبل از هر متد تحت آزمایش اجرا شود، مشخص می‌کند
  • ویژگی <TearDown()> متدی را که پس از هر متد تحت تست اجرا می‌شود، مشخص می‌کند
  • متد Assert.AreEqual برای بررسی برابری دو entités.Il استفاده می‌شود؛ متدهای بسیاری دیگر از نوع 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
début test
fin test
teardown test
  • خط ۱ نشان می‌دهد که متد ویژگی <Setup()> قبل از آزمون اجرا می‌شود
  • خطوط ۲–۳ توسط متد مورد آزمایش [demo] تولید می‌شوند (به کد بالا مراجعه کنید)
  • خط ۴ نشان می‌دهد که متد ویژگی <TearDown()> پس از آزمون اجرا می‌شود