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 eseeva ciò che gli autori intendevano. Questo articolo illustra unit test, test di integrazione e test di carico.
Test unità
Un unit test è un test che esercita singoli componenti o metodi software, noti anche come "unità di lavoro". Gli unit test devono testare solo il codice all'interno del controllo dello sviluppatore. Non testano i problemi dell'infrastruttura. I problemi relativi all'infrastruttura includono 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 esercita la capacità di due o più componenti software di funzionare insieme, noti anche come "integrazione". Questi test operano su uno spettro più ampio del sistema sottoposto a test, mentre gli unit test si concentrano sui singoli componenti. Spesso, i test di integrazione includono problemi di 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 ulteriori informazioni sui test di carico delle applicazioni web, vedere ASP.NET Core test di carico/stress.
Considerazioni sul test
Tenere presente che esistono procedure consigliate per la scrittura di test. Ad esempio, TDD (Test Driven Development) è quando si scrive uno unit test prima del codice da controllare. TDD è come creare un contorno per un libro prima di scriverlo. Lo unit test consente agli sviluppatori di scrivere codice più semplice, leggibile ed efficiente.
Strumenti di test
Quando si eseguono test in .NET, sono coinvolti due componenti: la piattaforma di test e il framework di test.
Piattaforme di test
La piattaforma di test è il motore che esegue i test e funge da canale di comunicazione con gli IDE. Ad esempio, Visual Studio può inviare una richiesta di individuazione alla piattaforma di test in modo che possa visualizzare i test disponibili in Esplora test. La piattaforma di test risponde all'IDE con i test trovati. Avviene una comunicazione simile per l'esecuzione dei test.
VSTest è stato usato per molti anni in .NET ed è l'unica piattaforma di test nell'ecosistema. All'inizio del 2024, è stata rilasciata la prima versione stabile di una nuova piattaforma di test, denominata Microsoft.Testing.Platform (MTP).
Framework di prova
Il framework di test è basato sulla piattaforma di test. Definisce il set di attributi e API che sono disponibili per te, in qualità di autore di test. In genere è alimentato da un adattatore di test, che funge da livello di comunicazione tra il framework di test e la piattaforma di test. I framework di test più diffusi sono MSTest, NUnit, TUnit e xUnit.net.
MSTest
MSTest è il framework di test Microsoft per tutti i linguaggi .NET. È estendibile e funziona con l'interfaccia della riga di comando di .NET, Visual Studio, Visual Studio Code e Rider. Supporta sia VSTest che Microsoft.Testing.Platform.
Per altre informazioni, vedere le risorse seguenti:
- supporto per Microsoft.Testing.Platform in MSTest (MSTest runner)
- Test unitario con C#
- Test unitari con F#
- Test unitario con Visual Basic
NUnit
NUnit è un framework di unit test per tutti i linguaggi .NET. Inizialmente, NUnit è stato convertito da JUnit e la versione di produzione corrente è stata riscritta con molte nuove funzionalità e supporto per un'ampia gamma di piattaforme .NET. Si tratta di un progetto di .NET Foundation. Supporta sia VSTest che Microsoft.Testing.Platform.
Per altre informazioni, vedere le risorse seguenti:
- supporto di Microsoft.Testing.Platform in NUnit (NUnit runner)
- Test unitario con C#
- Test Unitari con F#
- unit test con Visual Basic
TUnit
TUnit è interamente basato su Microsoft.Testing.Platform e non supporta VSTest. Per altre informazioni, vedere la documentazione di TUnit.
xUnit.net
xUnit.net è uno strumento di unit testing gratuito e open source incentrato sulla community per .NET. L'inventore originale di NUnit v2 ha scritto xUnit.net. xUnit.net è la tecnologia più avanzata per i test di unità delle app .NET. Funziona anche con ReSharper, CodeRush e TestDriven.NET. xUnit.net è un progetto del .NET Foundation e opera nel codice di condotta. Supporta sia VSTest che Microsoft.Testing.Platform
Per altre informazioni, vedere le risorse seguenti:
- supporto di Microsoft.Testing.Platform in xUnit.net v3
- Test unitario con C#
- Test unitari con F#
- Test unitari con Visual Basic
Esecuzione di test
CLI di .NET
È possibile eseguire unit test da tutti i progetti di test in una soluzione usando la CLI .NET con il comando dotnet test . L'interfaccia della riga di comando di .NET espone la maggior parte delle funzionalità che ambienti di sviluppo integrato (IDE) rendono disponibili tramite interfacce utente. L'interfaccia della riga di comando di .NET è multipiattaforma e può essere usata come parte delle pipeline di integrazione e recapito continue. L'interfaccia della riga di comando di .NET viene usata con processi con script per automatizzare le attività comuni.
IDE
Sia che si usi Visual Studio, Visual Studio Code o Rider, 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.
Vedere anche
Per altre informazioni, vedere gli articoli seguenti:
- Migliori pratiche per i test unitari con .NET
- test di integrazione di in ASP.NET Core
- Esecuzione di unit test selettivi
- Usare il code coverage per gli unit test