Procedura: modificare unit test
Aggiornamento: novembre 2007
Esistono due casi in cui si modifica uno unit test: quando viene creato manualmente o quando viene modificato uno unit test appena generato. Sebbene si possano eseguire unit test appena generati, tali test vengono creati con del contenuto predefinito che deve essere inizializzato con i valori appropriati prima che il test produca risultati significativi. All'interno di uno unit test generato, è necessario di solito personalizzare le assegnazioni della variabile e una o più istruzioni Assert.
Utilizzo delle istruzioni di asserzione negli unit test
Per impostazione predefinita, ogni unit test generato chiama il metodo Inconclusive che causa l'esito negativo del test, perché è ancora essenzialmente non implementato. Il passaggio successivo consiste nell'aggiungere codice significativo per controllare il corretto funzionamento del metodo testato. Questa operazione viene generalmente effettuata generando un valore e quindi confrontandolo con un valore previsto tramite un'istruzione Assert.AreEqual. Per un esempio, vedere "Esempio di unit test" in Struttura di unit test. Gli unit test appena generati contengono commenti "To-do" che suggeriscono le modifiche da apportare.
Uno unit test che non contiene istruzioni di asserzione viene superato automaticamente, purché non si verifichi un timeout e non venga generata un'eccezione imprevista. Per ulteriori informazioni, vedere Risultati dei test di base e Utilizzo di classi Assert.
Apertura e modifica di unit test
In questo argomento sono presenti due procedure:
Nella prima viene descritto come modificare uno unit test esistente. Di solito, questa operazione viene eseguita per preparare uno unit test generato automaticamente. Vedere Procedura: generare unit test.
Nella seconda procedura viene descritto come creare e modificare uno unit test manualmente.
Per modificare uno unit test esistente
Nel progetto del test in Esplora soluzioni, individuare e aprire il file contenente lo unit test e individuare il metodo di unit test che si desidera modificare.
In alternativa
In Visualizzazione test, fare doppio clic sullo unit test; verrà aperto il file contenente lo unit test; scorrere fino al metodo dello unit test.
Individuare le assegnazioni della variabile nel metodo.
Nei test appena generati, le assegnazioni della variabile sono contrassegnate con istruzioni "To-Do" che ricordano di personalizzare le assegnazioni. Ad esempio, di seguito è riportata un'assegnazione tipica da modificare:
string target.owner = null; // TODO: Initialize to an appropriate value
Assegnare un valore appropriato a ciascuna variabile.
Per individuare i valori appropriati, considerare i valori con cui queste variabili possono essere inizializzate prima di chiamare il metodo, le modifiche che possono subire quando il metodo viene chiamato e i risultati previsti. Per un esempio di questo processo, vedere la procedura Esegui e modifica unit test in Procedura dettagliata: creazione ed esecuzione di unit test.
Individuare e modificare le istruzioni Assert nel metodo. Se necessario, aggiungere istruzioni Assert aggiuntive.
Il Framework per unit test fornisce numerose classi Assert aggiuntive e dei metodi che garantiscono la flessibilità di scrittura di utili istruzioni Assert. Per ulteriori informazioni, vedere Framework per unit test.
Per creare uno unit test digitando all'interno
In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto del test, scegliere Aggiungi e fare clic su Nuovo test.
In alternativa
Fare clic con il pulsante destro del mouse sul bordo della finestra Visualizzazione test e scegliere Nuovo test.
Verrà visualizzata la finestra di dialogo Aggiungi nuovo test.
In Modelli, fare clic su Unit Test, quindi su OK.
Un nuovo file del codice sorgente con un nome simile a UnitTest1.cs viene aggiunto al progetto del test, con il linguaggio del progetto del test. Tale file contiene numerosi elementi richiesti dagli unit test:
Fare riferimento allo spazio dei nomi Microsoft.VisualStudio.TestTools.UnitTesting e allo spazio dei nomi System.
Definisce un proprio spazio dei nomi che contiene una classe di test. Tali classi di test dispongono dell'attributo [TestClass].
Contiene un metodo di inizializzazione e un metodo di pulitura. Tali metodi dispongono degli attributi [TestInitialize()] e [TestCleanup()], rispettivamente.
Contiene un metodo di test vuoto, con l'attributo [TestMethod]. Il test logico deve essere aggiunto qui. Questo metodo dispone di un nome predefinito simile a TestMethod1().
Questo file viene aperto anche nella finestra per la modifica del codice sorgente. Il nuovo metodo di test (vuoto) viene visualizzato nella finestra Visualizzazione test e nell'Editor elenco dei test.
Aggiungere il codice del test al metodo del test.
Il Framework per unit test fornisce numerose classi Assert aggiuntive e dei metodi che garantiscono la flessibilità di scrittura di utili istruzioni Assert. Per ulteriori informazioni, vedere Cenni preliminari su unit test e Framework per unit test.