8. Bijlagen
8.1. Waar is Spring te vinden?
De hoofdwebsite van Spring is [http://www.springframework.org/]. Dit is de website van de Java-versie. De .NET-versie die momenteel in ontwikkeling is (april 2005) is te vinden op de url [http://www.springframework.net/].

De downloadpagina is te vinden op [SourceForge]:

Zodra u het bovenstaande zip-bestand hebt gedownload, pakt u het uit:

In dit document hebben we alleen de inhoud van de map [bin] gebruikt:

In een Visual Studio-project dat gebruikmaakt van Spring, moet je systematisch twee dingen doen:
- de bovenstaande bestanden in de map [bin] van het project plaatsen
- een verwijzing naar de assembly [Spring.Core.dll] aan het project toevoegen
8.2. Waar vind je NUnit?
De hoofdwebsite van Nunit is [http://www.nunit.org/]. De versie die in april 2005 beschikbaar was, is 2.2.0:

Download deze versie en installeer deze. Tijdens de installatie wordt een map aangemaakt waarin de grafische testversie te vinden is:
Het interessante bevindt zich in de map [bin]:


De pijl hierboven wijst naar het grafische testprogramma. De installatie heeft ook nieuwe items toegevoegd aan de assembly-repository van Visual Studio, die we nu gaan bekijken.
Laten we het volgende Visual Studio-project aanmaken:
De geteste klasse bevindt zich in [Personne.vb]:

Public Class Personne
' privévelden
Private _nom As String
Private _age As Integer
' standaardconstructor
Public Sub New()
End Sub
' eigenschappen gekoppeld aan privévelden
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
' identiteitsreeks
Public Overrides Function tostring() As String
Return String.Format("[{0},{1}]", nom, age)
End Function
' init-methode
Public Sub init()
Console.WriteLine("init personne {0}", Me.ToString)
End Sub
' close-methode
Public Sub close()
Console.WriteLine("destroy personne {0}", Me.ToString)
End Sub
End Class
De testklasse bevindt zich in [NunitTestPersonne-1.vb]:
Imports System
Imports NUnit.Framework
<TestFixture()> _
Public Class NunitTestPersonne
' getest object
Private personne1 As Personne
<SetUp()> _
Public Sub init()
' er wordt een instantie van Personne aangemaakt
personne1 = New Personne
' log
Console.WriteLine("setup test")
End Sub
<Test()> _
Public Sub demo()
' schermlog
Console.WriteLine("début test")
' init persoon1
With personne1
.nom = "paul"
.age = 10
End With
' tests
Assert.AreEqual("paul", personne1.nom)
Assert.AreEqual(10, personne1.age)
' schermlog
Console.WriteLine("fin test")
End Sub
<TearDown()> _
Public Sub destroy()
' opvolging
Console.WriteLine("teardown test")
End Sub
End Class
Er zijn een aantal zaken die de aandacht verdienen:
- de methoden zijn voorzien van attributen zoals <Setup()>, <TearDown()>, ...
- om ervoor te zorgen dat deze attributen worden herkend, moet:
- het project verwijst naar de assembly [nunit.framework.dll]
- de testklasse de naamruimte [NUnit.Framework] importeert
De verwijzing wordt ingesteld door met de rechtermuisknop op [References] te klikken in de oplossingsverkenner:
![]() | ![]() |

De assembly [nunit.framework.dll] moet in de weergegeven lijst staan als de installatie van [Nunit] goed is verlopen. Dubbelklik op de assembly om deze aan het project toe te voegen:

Zodra dit is gebeurd, moet de testklasse [NunitTestPersonne] de naamruimte [NUnit.Framework] importeren:
De attributen van de testklasse [NunitTestPersonne] moeten vervolgens worden herkend.
- het attribuut <Test()> geeft een te testen methode aan
- het attribuut <Setup()> verwijst naar de methode die vóór elke geteste methode moet worden uitgevoerd
- het attribuut <TearDown()> duidt de methode aan die na elke geteste methode moet worden uitgevoerd
- met de methode Assert.AreEqual kan de gelijkheid van twee entités.Il worden getest er bestaan talrijke andere methoden van het type Assert.xx.
- Het hulpprogramma NUnit stopt de uitvoering van een geteste methode zodra een methode van het type [Assert] mislukt en geeft een foutmelding weer. Anders geeft het een succesmelding weer.
Laten we ons project zo configureren dat het een DLL genereert:

De gegenereerde DLL krijgt de naam [nunit-demos-1.dll] en wordt standaard in de map [bin] van het project geplaatst. Laten we ons project genereren. We krijgen dan in de map [bin]:

Laten we nu het grafische testprogramma Nunit starten. Ter herinnering: dit bevindt zich in <Nunit>\bin en heet [nunit-gui.exe]. <Nunit> verwijst naar de installatiemap van [Nunit]. We krijgen de volgende interface te zien:

Laten we de menuoptie [File/Open] gebruiken om de DLL en [nunit-demos-1.dll] van ons project te laden:

[Nunit] kan automatisch de testklassen detecteren die zich in het geladen bestand DLL bevinden. Hier vindt het de klasse [NunitTestPersonne]. Vervolgens worden alle methoden van de klasse weergegeven die het attribuut <Test()> hebben. Met de knop [Run] kunnen de tests op het geselecteerde object worden gestart. Als dit de klasse [NunitTestPersonne] is, worden alle weergegeven methoden getest. Men kan een specifieke methode laten testen door deze te selecteren en de uitvoering ervan aan te vragen via [Run]. Laten we de uitvoering van de klasse aanvragen:

Een geslaagde test van een methode wordt aangegeven met een groene stip naast de methode in het linkervenster. Een mislukte test wordt aangegeven met een rode stip.
Het venster [Console.Out] aan de rechterkant toont de schermuitvoer die door de geteste methoden wordt gegenereerd. Hier wilden we het verloop van een test volgen:
- regel 1 laat zien dat de attribuutmethode <Setup()> vóór de test wordt uitgevoerd
- de regels 2-3 worden gegenereerd door de geteste methode [demo] (zie de code hierboven)
- regel 4 laat zien dat de attribuutmethode <TearDown()> na de test wordt uitgevoerd

