8. Appendici
8.1. Dove posso trovare Spring?
Il sito web principale di Spring è [http://www.springframework.org/]. Questo è il sito per la versione Java. La versione .NET, attualmente in fase di sviluppo (aprile 2005), è disponibile all'indirizzo [http://www.springframework.net/].

Il sito per il download si trova su [SourceForge]:

Una volta scaricato il file zip sopra indicato, decomprimilo:

In questo documento abbiamo utilizzato solo il contenuto della cartella [bin]:

In un progetto Visual Studio che utilizza Spring, è necessario eseguire sempre due operazioni:
- inserire i file sopra indicati nella cartella [bin] del progetto
- aggiungere un riferimento all'assembly [Spring.Core.dll] al progetto
8.2. Dove si trova NUnit?
Il sito web principale di NUnit è [http://www.nunit.org/]. La versione disponibile ad aprile 2005 è la 2.2.0:

Scarica questa versione e installala. L'installazione crea una cartella contenente l'interfaccia grafica di test:
La parte interessante si trova nella cartella [bin]:


La freccia sopra indica l'utilità di test grafica. L'installazione ha anche aggiunto nuovi elementi al repository degli assembly di Visual Studio, che esploreremo ora.
Creiamo il seguente progetto Visual Studio:
La classe sottoposta a test si trova in [Person.vb]:

Public Class Personne
' private fields
Private _nom As String
Private _age As Integer
' default builder
Public Sub New()
End Sub
' properties associated with private fields
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
' identity chain
Public Overrides Function tostring() As String
Return String.Format("[{0},{1}]", nom, age)
End Function
' init method
Public Sub init()
Console.WriteLine("init personne {0}", Me.ToString)
End Sub
' close method
Public Sub close()
Console.WriteLine("destroy personne {0}", Me.ToString)
End Sub
End Class
La classe di test si trova in [NunitTestPersonne-1.vb]:
Imports System
Imports NUnit.Framework
<TestFixture()> _
Public Class NunitTestPersonne
' object tested
Private personne1 As Personne
<SetUp()> _
Public Sub init()
' create an instance of Person
personne1 = New Personne
' log
Console.WriteLine("setup test")
End Sub
<Test()> _
Public Sub demo()
' log screen
Console.WriteLine("début test")
' init person1
With personne1
.nom = "paul"
.age = 10
End With
' tests
Assert.AreEqual("paul", personne1.nom)
Assert.AreEqual(10, personne1.age)
' log screen
Console.WriteLine("fin test")
End Sub
<TearDown()> _
Public Sub destroy()
' follow-up
Console.WriteLine("teardown test")
End Sub
End Class
Alcune cose da notare:
- ai metodi vengono assegnati attributi quali <Setup()>, <TearDown()>, ...
- affinché questi attributi vengano riconosciuti, devono verificarsi le seguenti condizioni:
- il progetto fa riferimento all'assembly [nunit.framework.dll]
- la classe di test importa lo spazio dei nomi [NUnit.Framework]
Il riferimento viene aggiunto facendo clic con il tasto destro del mouse su [Riferimenti] in Esplora soluzioni:
![]() | ![]() |

L'assembly [nunit.framework.dll] dovrebbe essere presente nell'elenco se l'installazione di [NUnit] è andata a buon fine. È sufficiente fare doppio clic sull'assembly per aggiungerlo al progetto:

Una volta fatto ciò, la classe di test [NunitTestPersonne] deve importare lo spazio dei nomi [NUnit.Framework]:
Gli attributi della classe di test [NunitTestPersonne] dovrebbero quindi essere riconosciuti.
- L'attributo <Test()> indica un metodo da testare
- L'attributo <Setup()> indica il metodo da eseguire prima di ogni metodo sottoposto a test
- L'attributo <TearDown()> indica il metodo da eseguire dopo ogni metodo sottoposto a test
- Il metodo Assert.AreEqual consente di verificare l'uguaglianza di due entità. Esistono molti altri metodi del tipo Assert.xx.
- L'utilità NUnit interrompe l'esecuzione di un metodo testato non appena un metodo [Assert] fallisce e visualizza un messaggio di errore. In caso contrario, visualizza un messaggio di successo.
Configuriamo il nostro progetto per generare una DLL:

La DLL generata si chiamerà [nunit-demos-1.dll] e verrà collocata per impostazione predefinita nella cartella [bin] del progetto. Compiliamo il nostro progetto. Nella cartella [bin] otteniamo quanto segue:

Ora avviamo l'utilità di test grafica Nunit. Ricordiamo che si trova in <Nunit>\bin e si chiama [nunit-gui.exe]. <Nunit> si riferisce alla cartella di installazione [Nunit]. Otteniamo la seguente interfaccia:

Utilizziamo l'opzione di menu [File/Open] per caricare la DLL [nunit-demos-1.dll] dal nostro progetto:

[Nunit] è in grado di rilevare automaticamente le classi di test contenute nella DLL caricata. In questo caso, individua la classe [NunitTestPersonne]. Visualizza quindi tutti i metodi della classe che presentano l'attributo <Test()>. Il pulsante [Esegui] consente di eseguire i test sull'oggetto selezionato. Se si tratta della classe [NunitTestPersonne], vengono testati tutti i metodi visualizzati. È possibile testare un metodo specifico selezionandolo e facendo clic su [Run]. Eseguiamo la classe:

Un test riuscito su un metodo è indicato da un punto verde accanto al metodo nella finestra di sinistra. Un test fallito è indicato da un punto rosso.
La finestra [Console.Out] sulla destra mostra l'output sullo schermo prodotto dai metodi testati. In questo caso, volevamo seguire l'andamento di un test:
- La riga 1 mostra che il metodo con attributo <Setup()> viene eseguito prima del test
- Le righe 2–3 sono generate dal metodo [demo] sottoposto a test (vedi il codice sopra)
- La riga 4 mostra che il metodo dell'attributo <TearDown()> viene eseguito dopo il test

