Skip to content

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/].

Image

De downloadpagina is te vinden op [SourceForge]:

Image

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

Image

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

Image

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:

Image

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]:

Image

Image

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]:

Image

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:

Image

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:

Image

Zodra dit is gebeurd, moet de testklasse [NunitTestPersonne] de naamruimte [NUnit.Framework] importeren:

Imports NUnit.Framework

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:

Image

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]:

Image

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:

Image

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

Image

[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:

Image

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:

1
2
3
4
setup test
début test
fin test
teardown test
  • 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