Questo è un estratto dall'eBook Testing Unit Affinity, di Marc Clifton, gentilmente fornito da Syncfusion.
Originariamente, NUnit era stato convertito da JUnit come un motore di test di unità open source che forniva una ricca suite di test fixture, metodo e attributi variabili, oltre a test assertion. La documentazione per tutte le versioni di NUnit può essere trovata qui. NUnit è ancora in manutenzione. L'ultima versione stabile al momento della stesura di questo documento è la versione 2.6.2, rilasciata il 22 ottobre 2012.
CSUnit è un motore di test per unità di peso più leggero. Si noti che non sembra essere mantenuto, in quanto l'ultima versione era nel marzo 2009. Offre un insieme minimo ma funzionale di attributi da utilizzare per la definizione di dispositivi di prova e metodi di prova.
Visual Studio offre la possibilità di creare progetti di test direttamente nell'IDE. Uno dei problemi che l'autore ha scoperto è che l'interfaccia utente è cambiata tra VS 2008 e VS 2012:
In VS2008, l'esecuzione di test viene eseguita molto rapidamente e visualizza un elenco di risultati di test di facile lettura e, per i test non riusciti, il messaggio di errore che fornisce informazioni sul motivo per cui il test ha avuto esito negativo.
Inoltre, quando il progetto di test è il progetto attivo, l'esecuzione dei test (o il debugging) è la stessa di qualsiasi altra applicazione, è possibile eseguirli con Ctrl + F5 (esecuzione) o F5 (debug).
In VS2012, il test runner impiega diversi secondi per inizializzarsi. Peggio ancora, i messaggi associati a un risultato del test sono ottenuti facendo clic sull'errore. Il requisito di clic aggiuntivo è un problema di usabilità significativo. A causa delle modifiche nel modo in cui vengono visualizzati i guasti, Visual Studio 2008 è stato utilizzato per gli screenshot di questo libro.
Infine, il test runner non viene più avviato tramite gli stessi tasti di scelta rapida di un'applicazione normale. Invece, lo sviluppatore deve usare Ctrl + R, A per eseguire i test. Non esiste una scorciatoia da tastiera mappata per eseguire il debug dei test unitari.
Microsoft fornisce strumenti di integrazione per NUnit per entrambi Visual Studio 2010 (http://visualstudiogallery.msdn.microsoft.com/c8164c71-0836-4471-80ce-633383031099) e 2012 (http://visualstudiogallery.msdn.microsoft.com/6ab922d0 -21c0-4f06-ab5f-4ecd1fe7175d), anche se al momento della stesura di questo documento, la scheda di test NUNit di Visual Studio 2012 è una beta 3-2.
Ci sono alcuni altri motori di prova che vale la pena menzionare qui.
MSTest (http://msdn.microsoft.com/en-us/library/ms182489 è la versione da riga di comando del test runner di Microsoft.
MbUnit e Gallio sono strettamente correlati. Gallio è una piattaforma di automazione di test che consente di integrare una varietà di framework di test e strumenti di reporting. Questo è uno strumento sofisticato che vale la pena di esplorare una volta acquisita familiarità con i principi dei test unitari e altri motori.
Microsoft Test Manager è uno strumento per pianificare, gestire ed eseguire i test, manualmente o automaticamente. Microsoft Test Manager si integra con la tracciabilità dei bug, consente la scrittura di note associate ai test e consente di configurare macchine di laboratorio virtuali che possono essere ripristinate in uno stato noto prima dell'esecuzione dei test.
FsUnit è un motore di test che facilita il lavoro con il linguaggio F #.
Il test delle unità è progettato per convalidare la correttezza delle unità di codice computazionale. Il test di integrazione è progettato per testare il comportamento dell'interfaccia utente.
Per i lettori che hanno familiarità con Ruby, NBehave è un primo prototipo di funzionalità simili a Cucumber in quanto si scrivono test comportamentali. I test sono scritti in linguaggio naturale, ad esempio (entrambi questi esempi provengono dal sito web GitHub NBehave):
Scenario: Login Dato Non ho effettuato l'accesso Quando effettuo l'accesso come Morgan con una password SecretPassw0rd Quindi dovrei vedere un messaggio, "Benvenuto, Morgan!"
e i metodi implementano le frasi (che possono ovviamente essere riutilizzate):
[Dato ("I am not logged in")] public void LogOut () ...
Tieni presente che questo non è un test unitario, piuttosto, facilita un paradigma chiamato Sviluppo guidato dal comportamento ed è menzionato qui per illustrare altre forme di test che completano il test unitario.