Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Unit Testing con Visual Studio 2010

Sfruttare il generatore automatico di Visual Studio 2010 di test per mettere alla prova le nostre classi
Sfruttare il generatore automatico di Visual Studio 2010 di test per mettere alla prova le nostre classi
Link copiato negli appunti

Visual Studio 2010 introduce nuove funzionalità dedicate allo Unit Testing, particolarmente interessanti per chi sviluppa progetti di tipo ASP.NET MVC, per i quali è molto più facile creare test per le logiche di pagina.

Per creare un test è prima di tutto necessario avere nella Solution un progetto di tipo "Test" che faccia da contenitore, dato che non è possibile includere un test in un progetto di altro tipo. Questo requisito non è una limitazione, ma anzi rinforza una "best practice" oramai consolidata, ovvero includere tutti gli Unit Test in progetti separati cosi da evitare di portare in produzione codice di test. In Figura 1 viene mostrato come creare un progetto di tipo test da aggiungere alla propria soluzione.

Figura 1. Creare un progetto di test
Creare un progetto di test

Il primo progetto di Unit Testing

Esistono varie modalità per creare un test, ma la più immediata è senza dubbio premere il tasto destro sul nome della classe che si deve verificare e scegliere l'opzione "Create Unit Tests".

Figura 2. Creare uno unit test per una specifica classe
Creare uno unit test per una specifica classe

Questo comando apre un menu in cui è possibile scegliere i metodi della classe che si vogliono verificare e il progetto in cui andare a creare il test stesso, che verrà automaticamente creato alla pressione del tasto Ok. Se nella solution non è presente un progetto di test, Visual Studio permette, grazie ad una ulteriore opzione, di crearne uno in maniera automatica prima della creazione del test.

Figura 3. Scegliere i metodi da testare ed il progetto in cui includerli
Scegliere i metodi da testare ed il progetto in cui includerli

La classe di test generata contiene un test per ogni metodo da verificare, se si esamina il codice si può notare che uno Unit Test non è altro che un metodo della classe di test che possiede l'attributo TestMethod().

[TestMethod()]
public void AddTest()
{
  MyMath target = new MyMath(); // TODO: Initialize to an appropriate value
  double a = 0F; // TODO: Initialize to an appropriate value
  double b = 0F; // TODO: Initialize to an appropriate value
  double expected = 0F; // TODO: Initialize to an appropriate value
  double actual;
  actual = target.Add(a, b);
  Assert.AreEqual(expected, actual);
  Assert.Inconclusive("Verify the correctness of this test method.");
}

Per ogni metodo della classe da verificare, Visual Studio crea uno scheletro di codice che genera un'istanza dell'oggetto, chiama il metodo da verificare ed infine verifica che il risultato del test sia quello atteso grazie alla classe Assert.

Per completare il test si debbono inserire dati di ingresso significativi, impostare il valore atteso e rimuovere l'asserzione in conclusiva, il cui scopo è individuare tutti i test che non sono ancora stati configurati correttamente. In questo caso, dato che si deve testare un'addizione, si potrebbe scrivere il codice seguente.

/// <summary>
///A test for Add
///</summary>
[TestMethod()]
public void AddTest()
{
  MyMath target = new MyMath();
  double a = 1;
  double b = 2;
  double expected = 3;
  double actual;
  actual = target.Add(a, b);
  Assert.AreEqual(expected, actual);
}

Ora che il test è pronto, per eseguirlo basta cliccare con il tasto destro sul nome del metodo stesso e selezionare il comando Run Tests; Visual Studio a questo punto lo esegue e presenta il risultato in un apposita finestra.

Figura 4. Risultato dell'esecuzione del primo test
Risultato dell'esecuzione del primo test

Ti consigliamo anche