8. Annexes
8.1. Où trouver Spring ?
Le site principal de Spring est [http://www.springframework.org/]. C'est le site de la version Java. La version .NET en cours de développement (avril 2005) est à l'url [http://www.springframework.net/].

Le site de téléchargement est chez [SourceForge] :

Une fois le zip ci-dessus récupéré, le décompresser :

Dans ce document, nous n'avons utilisé que le contenu du dossier [bin] :

Dans un projets Visual Studio utisant Spring, il faut faire systématiquement deux choses :
- mettre les fichiers ci-dessus dans le dossier [bin] du projet
- ajouter au projet une référence à l'assembly [Spring.Core.dll]
8.2. Où trouver Nunit ?
Le site principal de Nunit est [http://www.nunit.org/]. La version disponible en avril 2005 est la 2.2.0 :

Téléchargez cette version et installez la. L'installation crée un dossier où on trouvera la version graphique de test :
Ce qui est intéressant se trouve dans le dossier [bin] :


La flèche ci-dessus désigne l'utilitaire graphique de test. L'installation a également ajouté de nouveaux éléments au référentiel d'assemblages de Visual Studio que nous allons découvrir maintenant.
Créons le projet Visual Studio suivant :
La classe testée est dans [Personne.vb] :

Public Class Personne
' champs privés
Private _nom As String
Private _age As Integer
' constructeur par défaut
Public Sub New()
End Sub
' propriétés associées aux champs privés
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
' chaîne d'identité
Public Overrides Function tostring() As String
Return String.Format("[{0},{1}]", nom, age)
End Function
' méthode init
Public Sub init()
Console.WriteLine("init personne {0}", Me.ToString)
End Sub
' méthode close
Public Sub close()
Console.WriteLine("destroy personne {0}", Me.ToString)
End Sub
End Class
La classe de test est dans [NunitTestPersonne-1.vb] :
Imports System
Imports NUnit.Framework
<TestFixture()> _
Public Class NunitTestPersonne
' objet testé
Private personne1 As Personne
<SetUp()> _
Public Sub init()
' on crée une instance de Personne
personne1 = New Personne
' log
Console.WriteLine("setup test")
End Sub
<Test()> _
Public Sub demo()
' log écran
Console.WriteLine("début test")
' init personne1
With personne1
.nom = "paul"
.age = 10
End With
' tests
Assert.AreEqual("paul", personne1.nom)
Assert.AreEqual(10, personne1.age)
' log écran
Console.WriteLine("fin test")
End Sub
<TearDown()> _
Public Sub destroy()
' suivi
Console.WriteLine("teardown test")
End Sub
End Class
Plusieurs choses sont à noter :
- les méthodes sont dotées d'attributs tels <Setup()>, <TearDown()>, ...
- pour que ces attributs soient reconnus, il faut que :
- le projet référence l'assembly [nunit.framework.dll]
- la classe de test importe l'espace de noms [NUnit.Framework]
La référence est obtenue en cliquant droit sur [References] dans l'explorateur de solutions :
![]() | ![]() |

L'assembly [nunit.framework.dll] doit être dans la liste proposée si l'installation de [Nunit] s'est bien passée. Il suffit de double-cliquer sur l'assembly pour l'ajouter au projet :

Ceci fait, la classe de test [NunitTestPersonne] doit importer l'espace de noms [NUnit.Framework] :
Les attributs de la classe de test [NunitTestPersonne] doivent alors être reconnus.
- l'attribut <Test()> désigne une méthode à tester
- l'attribut <Setup()> désigne la méthode à exécuter avant chaque méthode testée
- l'attribut <TearDown()> désigne la méthode à exécuter après chaque méthode testée
- la méthode Assert.AreEqual permet de tester l'égalité de deux entités.Il existe de nombreuses autres méthodes de type Assert.xx.
- l'utilitaire NUnit arrête l'exécution d'une méthode testée dès qu'une méthode [Assert] échoue et affiche un message d'erreur. Sinon il affiche un message de réussite.
Configurons notre projet pour qu'il génère une DLL :

La DLL générée s'appellera [nunit-demos-1.dll] et sera placée par défaut dans le dossier [bin] du projet. Générons notre projet. Nous obtenons dans le dossier [bin] :

Lançons maintenant l'utilitaire de test graphique Nunit. Rappelons qu'il se trouve dans <Nunit>\bin et qu'il s'appelle [nunit-gui.exe]. <Nunit> désigne le dossier d'installation de [Nunit]. On obtient l'interface suivante :

Utilisons l'option de menu [File/Open] pour charger la DLL [nunit-demos-1.dll] de notre projet :

[Nunit] est capable de détecter automatiquement les classes de test qui se trouvent dans la DLL chargée. Ici, il trouve la classe [NunitTestPersonne]. Il affiche alors toutes les méthodes de la classe ayant l'attribut <Test()>. Le bouton [Run] permet de lancer les tests sur l'objet sélectionné. Si celui-ci est la classe [NunitTestPersonne], toutes les méthodes affichées sont testées. On peut demander le test d'une méthode particulière en la sélectionnant et en demandant son exécution par [Run]. Demandons l'exécution de la classe :

Un test réussi sur une méthode est symbolisé par un point vert à côté de la méthode dans la fenêtre de gauche. Un test raté est symbolisé par un point rouge.
La fenêtre [Console.Out] à droite montre les affichages écran produits par les méthodes testées. Ici, nous avons voulu suivre le déroulement d'un test :
- la ligne 1 montre que la méthode d'attribut <Setup()> est exécutée avant le test
- les lignes 2-3 sont produites par la méthode [demo] testée (voir le code plus haut)
- la ligne 4 montre que la méthode d'attribut <TearDown()> est exécutée après le test

