8. Додатки
8.1. Де знайти Spring?
Головний сайт Spring — [http://www.springframework.org/]. Це сайт версії для Java. Версія .NET, яка перебуває на стадії розробки (квітень 2005 року), розміщена за адресою [http://www.springframework.net/].

Сторінка для завантаження знаходиться за адресою [SourceForge]:

Після завантаження вищезазначеного zip-файлу розпакуйте його:

У цьому документі ми використовували лише вміст папки [bin]:

У проєктах Visual Studio, що використовують Spring, необхідно систематично виконувати дві дії:
- помістити вищезазначені файли у папку [bin] проекту
- додати до проекту посилання на збірку [Spring.Core.dll]
8.2. Де знайти Nunit?
Головний веб-сайт Nunit — [http://www.nunit.org/]. У квітні 2005 року доступною була версія 2.2.0:

Завантажте цю версію та встановіть її. Під час встановлення створюється папка, у якій можна знайти тестову графічну версію:
Найцікавіше знаходиться у папці [bin]:


Стрілка вище вказує на графічну утиліту для тестування. Під час інсталяції також були додані нові елементи до репозиторію збірки Visual Studio, які ми зараз розглянемо.
Створимо такий проект у Visual Studio:
Тестований клас знаходиться у файлі [Personne.vb]:

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] у провіднику рішень:
![]() | ![]() |

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

Після цього тестовий клас [NunitTestPersonne] повинен імпортувати простір імен [NUnit.Framework]:
Після цього мають бути розпізнані атрибути тестового класу [NunitTestPersonne].
- атрибут <Test()> позначає метод, що тестується
- атрибут <Setup()> позначає метод, який слід виконати перед кожним тестованим методом
- атрибут <TearDown()> позначає метод, який слід виконати після кожного тестованого методу
- метод Assert.AreEqual дозволяє перевірити рівність двох entités.Il існує багато інших методів типу Assert.xx.
- утиліта NUnit зупиняє виконання тестованого методу, щойно метод типу [Assert] завершується з помилкою, і виводить повідомлення про помилку. В іншому випадку вона виводить повідомлення про успішне виконання.
Налаштуємо наш проєкт так, щоб він генерував DLL:

Згенерований файл DLL матиме назву [nunit-demos-1.dll] і за замовчуванням буде розміщений у папці [bin] проекту. Згенеруємо наш проект. У папці [bin] ми отримаємо:

Тепер запустимо утиліту для тестування графіки Nunit. Нагадаємо, що вона знаходиться в <Nunit>\bin і називається [nunit-gui.exe]. <Nunit> позначає папку інсталяції [Nunit]. Ми отримуємо такий інтерфейс:

Скористаємося пунктом меню [File/Open], щоб завантажити DLL та [nunit-demos-1.dll] з нашого проєкту:

[Nunit] здатний автоматично виявляти тестові класи, що містяться у завантаженому файлі DLL. У цьому випадку він знаходить клас [NunitTestPersonne]. Після цього він відображає всі методи класу, що мають атрибут <Test()>. Кнопка [Run] дозволяє запустити тестування вибраного об’єкта. Якщо це клас [NunitTestPersonne], тестуються всі відображені методи. Можна запустити тестування конкретного методу, вибравши його та запустивши його виконання за допомогою [Run]. Запустимо виконання класу:

Успішне тестування методу позначається зеленою крапкою поруч із методом у лівому вікні. Неуспішне тестування позначається червоною крапкою.
Вікно [Console.Out] праворуч показує екранні виводи, що генеруються тестованими методами. Тут ми вирішили простежити хід тесту:
- у рядку 1 показано, що метод атрибута <Setup()> виконується перед тестом
- рядки 2–3 генеруються тестованим методом [demo] (див. код вище)
- рядок 4 показує, що метод атрибута <TearDown()> виконується після тесту

