Naming dei test

test

Per lo sviluppo di codice di buona qualità è necessario associare il proprio codice a dei test, che siano unit test, integration test o end to end test.

Uno dei primi problemi a cui si incorre è capire come effettuare il naming del progetto di test, la classe e i test stessi.

Assumiamo di avere un progetto chiamato MyMathLibrary che contiene una classe chiamata MyMath di funzioni matematiche custom della mia applicazione.

Naming del progetto

Per prima cosa è importante sottolineare che tutti i progetti di test devono essere raggruppati in una cartella ad hoc, in modo che non siano confusi con il codice effettivo; è una buona idea collocare il proprio codice in src e i test in test.

Una volta creata la cartella è necessario creare il progetto di test per MyMathLibrary, in particolare il nome deve dipendere dalla tipologia di test:

Tipologia di testNome
UnitMyMathLibrary.Tests.Unit
IntegrationMyMathLibrary.Tests.Integration
End to EndMyMathLibrary.Tests.E2E

Come si vede il progetto di test è estremamente parlante in quanto indica il progetto testato e la tipologia di test che possiamo trovare al suo interno.

Struttura delle cartelle e nomi

Naming della classe

La classe che testa MyMath si può chiamare MyMathTests in modo che sia esplicito già dal nome la classe che sto testando.

Naming del test

Il nome del test deve seguire lo stile “Metodo_Should_When“, in particolare dovrà quindi indicare dopo lo Should cosa dovrebbe fare e dopo il When in che caso dovrebbe fare quanto indicato.

Assumiamo che all’interno della mia classe MyMath vi sia il metodo Log che fa un logaritmo; il nome del test dovrebbe essere analogo a: Log_ShouldCalculateLogOfANumber_WhenIntegerNumberIsGiven.

Esempio di metodo e del suo test con xUnit

Indice

Share
Ultimi articoli
Join

Newsletter

Nessuno spam, solo articoli interessanti ;)

Focus

Post correlati

semaphoreslim

SmaphoreSlim 101

SemaphoreSlim è una classe che permette la sincronizzazione di n thread che hanno una risorsa (scarsa) condivisa limitandone l’uso ad un numero massimo.

interlocked

Interlocked 101

La sincronizzazione dei thread è un elemento fondamentale nella programmazione asincrona, ne ho infatti parlato in vari post. La soluzione più versatile è sicuramente utilizzare

event

Come testare gli eventi

Testare che degli eventi siano stato effettivamente lanciati in C# non è immediato. Tipicamente è possibile testare che un evento venga lanciato aspettando un ManualResetEvent

Codice Pragmatico

Contatti

Per informazioni, dubbi o consulenze non esitate a contattarmi.

Lascia un messaggio

Ricevi le ultime news

Iscrivi alla newsletter

Solo articoli interessanti, promesso ;)