8. Załączniki
8.1. Gdzie znaleźć Spring?
Główna strona Springa to [http://www.springframework.org/]. Jest to strona poświęcona wersji Java. Wersja .NET, która jest obecnie w fazie rozwoju (kwiecień 2005 r.), znajduje się pod adresem [http://www.springframework.net/].

Strona pobierania znajduje się pod adresem [SourceForge]:

Po pobraniu powyższego pliku ZIP należy go rozpakować:

W niniejszym dokumencie wykorzystaliśmy wyłącznie zawartość folderu [bin]:

W projekcie Visual Studio wykorzystującym Spring należy zawsze wykonać dwie czynności:
- umieścić powyższe pliki w folderze [bin] projektu
- dodać do projektu odwołanie do zestawu [Spring.Core.dll]
8.2. Gdzie znaleźć NUnit?
Główną stroną serwisu Nunit jest [http://www.nunit.org/]. Wersja dostępna w kwietniu 2005 r. to 2.2.0:

Pobierz tę wersję i zainstaluj ją. Instalacja tworzy folder, w którym znajduje się graficzna wersja testowa:
To, co jest interesujące, znajduje się w folderze [bin]:


Strzałka powyżej wskazuje graficzne narzędzie testowe. Instalacja dodała również nowe elementy do repozytorium zestawów w Visual Studio, które teraz omówimy.
Utwórzmy następujący projekt w Visual Studio:
Testowana klasa znajduje się w pliku [Personne.vb]:

Public Class Personne
' pola prywatne
Private _nom As String
Private _age As Integer
' konstruktor domyślny
Public Sub New()
End Sub
' właściwości powiązane z polami prywatnymi
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
' ciąg identyfikacyjny
Public Overrides Function tostring() As String
Return String.Format("[{0},{1}]", nom, age)
End Function
' metoda init
Public Sub init()
Console.WriteLine("init personne {0}", Me.ToString)
End Sub
' metoda close
Public Sub close()
Console.WriteLine("destroy personne {0}", Me.ToString)
End Sub
End Class
Klasa testowa znajduje się w [NunitTestPersonne-1.vb]:
Imports System
Imports NUnit.Framework
<TestFixture()> _
Public Class NunitTestPersonne
' obiekt testowany
Private personne1 As Personne
<SetUp()> _
Public Sub init()
' tworzymy instancję klasy Personne
personne1 = New Personne
' log
Console.WriteLine("setup test")
End Sub
<Test()> _
Public Sub demo()
' log ekranowy
Console.WriteLine("début test")
' inicjalizacja osoby1
With personne1
.nom = "paul"
.age = 10
End With
' testy
Assert.AreEqual("paul", personne1.nom)
Assert.AreEqual(10, personne1.age)
' log ekranowy
Console.WriteLine("fin test")
End Sub
<TearDown()> _
Public Sub destroy()
' monitorowanie
Console.WriteLine("teardown test")
End Sub
End Class
Należy zwrócić uwagę na kilka kwestii:
- Metody posiadają atrybuty, takie jak <Setup()>, <TearDown()>, ...
- aby atrybuty te zostały rozpoznane, konieczne jest, aby:
- projekt odwołuje się do zestawu [nunit.framework.dll]
- klasa testowa importowała przestrzeń nazw [NUnit.Framework]
Odwołanie uzyskuje się poprzez kliknięcie prawym przyciskiem myszy na [References] w eksploratorze rozwiązań:
![]() | ![]() |

Zestaw [nunit.framework.dll] powinien znajdować się na wyświetlonej liście, jeśli instalacja [Nunit] przebiegła pomyślnie. Wystarczy dwukrotnie kliknąć na zestaw, aby dodać go do projektu:

Po wykonaniu tej czynności klasa testowa [NunitTestPersonne] musi zaimportować przestrzeń nazw [NUnit.Framework]:
Następnie należy zidentyfikować atrybuty klasy testowej [NunitTestPersonne].
- atrybut <Test()> określa metodę, która ma zostać przetestowana
- atrybut <Setup()> oznacza metodę, która ma zostać wykonana przed każdą testowaną metodą
- atrybut <TearDown()> oznacza metodę, którą należy wykonać po każdej testowanej metodzie
- metoda Assert.AreEqual pozwala sprawdzić, czy dwie wartości są równe; istnieje wiele innych metod typu Assert.xx.
- Narzędzie NUnit zatrzymuje wykonywanie testowanej metody, gdy tylko metoda typu [Assert] zakończy się niepowodzeniem, i wyświetla komunikat o błędzie. W przeciwnym razie wyświetla komunikat o pomyślnym zakończeniu.
Skonfigurujmy nasz projekt tak, aby generował metodę DLL:

Wygenerowana metoda DLL będzie nosiła nazwę [nunit-demos-1.dll] i zostanie domyślnie umieszczona w folderze [bin] projektu. Wygenerujmy nasz projekt. W folderze [bin] otrzymujemy:

Uruchommy teraz narzędzie do testowania grafiki Nunit. Przypomnijmy, że znajduje się ono w katalogu <Nunit>\bin i nosi nazwę [nunit-gui.exe]. <Nunit> oznacza katalog instalacyjny pliku [Nunit]. Pojawi się następujący interfejs:

Skorzystajmy z opcji menu [File/Open], aby załadować pliki DLL i [nunit-demos-1.dll] z naszego projektu:

[Nunit] potrafi automatycznie wykryć klasy testowe znajdujące się w załadowanym pliku DLL. W tym przypadku wykrywa klasę [NunitTestPersonne]. Następnie wyświetla wszystkie metody tej klasy posiadające atrybut <Test()>. Przycisk [Run] pozwala uruchomić testy na wybranym obiekcie. Jeśli jest to klasa [NunitTestPersonne], testowane są wszystkie wyświetlone metody. Można zlecić testowanie konkretnej metody, zaznaczając ją i uruchamiając ją za pomocą [Run]. Zlećmy wykonanie klasy:

Pomyślny wynik testu metody jest oznaczony zieloną kropką obok nazwy metody w lewym oknie. Niepomyślny wynik testu jest oznaczony czerwoną kropką.
Okno [Console.Out] po prawej stronie pokazuje ekrany generowane przez testowane metody. W tym przypadku chcieliśmy śledzić przebieg testu:
- wiersz 1 pokazuje, że metoda atrybutu <Setup()> jest wykonywana przed testem
- wiersze 2–3 są generowane przez testowaną metodę [demo] (patrz kod powyżej)
- wiersz 4 pokazuje, że metoda atrybutu <TearDown()> jest wykonywana po zakończeniu testu

