Test in .NET

Questo articolo presenta il concetto di test e illustra come usare diversi tipi di test per convalidare il codice. Sono disponibili vari strumenti per il test di applicazioni .NET, ad esempio l'interfaccia della riga di comando di .NET o ambienti di sviluppo integrato (IDE).

Tipi di test

I test automatizzati sono un ottimo modo per garantire che il codice dell'applicazione soddisfi le aspettative degli autori. Questo articolo illustra unit test, test di integrazione e test di carico.

Unit test

Un unit test è un test che mette alla prova singoli componenti o metodi software, noti anche come "unità di lavoro". Gli unit test devono essere usati solo per testare il codice sotto il controllo dello sviluppatore. Non testano gli aspetti relativi all'infrastruttura, vale a dire l'interazione con database, file system e risorse di rete.

Per altre informazioni sulla creazione di unit test, vedere Strumenti di test.

Test di integrazione

Un test di integrazione differisce da uno unit test in quanto mette alla prova la capacità di due o più componenti software di funzionare insieme, ovvero la rispettiva "integrazione". Questi test operano su uno spettro più ampio del sistema sottoposto a test, mentre gli unit test si concentrano sui singoli componenti. I test di integrazione includono spesso aspetti relativi all'infrastruttura.

Test di carico

Un test di carico mira a determinare se un sistema può gestire o meno un carico specificato, ad esempio, il numero di utenti simultanei che usano un'applicazione e la capacità dell'app di gestire le interazioni in modo reattivo. Per altre informazioni sui test di carico delle applicazioni Web, vedere Test di carico/stress di ASP.NET Core.

Considerazioni sui test

Tenere presente che esistono procedure consigliate per la scrittura di test. Ad esempio, si parla di sviluppo basato su test (TDD, Test Driven Development) quando si scrive uno unit test prima del codice che sarà sottoposto a controllo. L'uso di TTD è paragonabile alla stesura di uno schema prima di iniziare a scrivere un libro. Lo unit test consente agli sviluppatori di scrivere codice più semplice, leggibile ed efficiente.

Strumenti di test

.NET è una piattaforma di sviluppo multi-linguaggio ed è possibile scrivere vari tipi di test per C#, F# e Visual Basic. Per ognuno di questi linguaggi è possibile scegliere tra diversi framework di test.

xUnit

xUnit è uno strumento di unit test gratuito e open source incentrato sulla community per .NET. L'inventore originale di NUnit v2 ha scritto xUnit.net. xUnit.net è la tecnologia più recente per l'unit test di app .NET. Funziona anche con ReSharper, CodeRush, TestDriven.NET e Xamarin. xUnit.net è un progetto di .NET Foundation e ne rispetta il codice di comportamento.

Per ulteriori informazioni, vedi le seguenti risorse:

NUnit

NUnit è un framework di unit test per tutti i linguaggi .NET. NUnit è stato inizialmente convertito da JUnit e la versione di produzione corrente è stata riscritta con molte nuove funzionalità e con supporto per un'ampia gamma di piattaforme .NET. Si tratta di un progetto di .NET Foundation.

Per ulteriori informazioni, vedi le seguenti risorse:

MSTest

MSTest è il framework di test Microsoft per tutti i linguaggi .NET. È estendibile e funziona sia con l'interfaccia della riga di comando di .NET sia con Visual Studio. Per ulteriori informazioni, vedi le seguenti risorse:

MSTest Runner

MSTest Runner è un'alternativa leggera e portabile a VSTest per l'esecuzione di test nelle pipeline di integrazione continua (CI) e in Esplora test di Visual Studio. Per altre informazioni, vedere Panoramica di MSTest Runner.

CLI .NET

È possibile eseguire uno unit test delle soluzioni dall'interfaccia della riga di comando di .NET con il comando dotnet test. L'interfaccia della riga di comando di .NET espone la maggior parte delle funzionalità che vengono rese disponibili dagli ambienti di sviluppo integrato (IDE) tramite le interfacce utente. L'interfaccia della riga di comando di .NET è multipiattaforma e può essere usata come parte delle pipeline di integrazione continua e recapito continuo. L'interfaccia della riga di comando di .NET viene usata con processi con script per automatizzare le attività comuni.

IDE

Indipendentemente dal fatto che si usi Visual Studio o Visual Studio Code, sono disponibili interfacce utente grafiche per il test delle funzionalità. Sono disponibili più funzionalità per gli IDE rispetto all'interfaccia della riga di comando, ad esempio Live Unit Testing. Per altre informazioni, vedere Inclusione ed esclusione di test con Visual Studio.

Vedi anche

Per altre informazioni, vedere gli articoli seguenti: