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:

Тестований клас знаходиться у файлі [Personne.vb]:

Image

Public Class Personne

     ' приватні поля
    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

     ' метод close
    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()
         ' створюється екземпляр класу «Personne»
        personne1 = New Personne
         ' журнал
        Console.WriteLine("setup test")
    End Sub

    <Test()> _
    Public Sub demo()
         ' логічний вивід на екран
        Console.WriteLine("début test")
         ' ініціалізація «personne1»
        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] у провіднику рішень:

Image

Збірка [nunit.framework.dll] має бути у запропонованому списку, якщо встановлення [Nunit] пройшло успішно. Достатньо двічі клацнути на збірці, щоб додати її до проєкту:

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
  • у рядку 1 показано, що метод атрибута <Setup()> виконується перед тестом
  • рядки 2–3 генеруються тестованим методом [demo] (див. код вище)
  • рядок 4 показує, що метод атрибута <TearDown()> виконується після тесту