Possiamo scrivere codice java utilizzando anche maven, in questo specifico caso questo tool ci aiuta a seguire una convenzione standard di posizionamento delle cartelle
Questa è la struttura standard Maven
Le classi dell’applicazione sono dentro la cartella src/main/java e i testi sono dentro src/test/java
il file pom.xml descrive il nostro progetto
Possiamo specificare che il test è di tipo parametrico usando il decoratore @ParameterizedTest, per specificare invece quali sono i parametri in ingresso si può utilizzare il decoratore @CsvSource
public class CalcTest {
private final Calc calculator = new Calc();
@ParameterizedTest
@CsvSource({
"1, 1, 2",
"2, 3, 5",
"10, 5, 15",
"-1, 1, 0"
})
void testAdd(int a, int b, int expected) {
int result = calculator.add(a, b);
assertEquals(expected, result);
}
}Durante l’esecuzione di un test si esegue una parte dell’applicazione, in un progetto molto complicato è importante tenere a mente quali righe di codice vengono testate, questo dato viene espresso usando la Copertura del codice definita come il rapporto tra le righe di codice eseguite dai test e quelle totali
ha spiegato diverse funzioni dentro vscode
Questo è un esempio di test, dopo aver testato con il tasto testWithCoverage, ci dice precisamente quanta percentuale di codice è stata testata
Programmare specificando delle precondizioni significa seguire il design by contract ovvero prima ancora che il codice venga eseguito ho delle condizioni nel codice che non lo fanno neanche compilare in caso di problemi
Genereare un progetto con maven ci aiuta a gestire in modo migliore tutto il progetto: dalla compilazione, alla gestione delle dipendenze, il test, il rilascio ecc…
Tutto viene specificato dentro il file POM (Projetct Object Model) qui troviamo la versione, i plugin, le estensioni e varie informazioni.
Una volta creato il progetto usando maven dentro vscode vedremo questo menù in basso a dx, dove troviamo tutte le informazioni riguardanti il nostro progetto maven
Abbiamo finito L2_Test.pdf e siamo passati a L3_Refactoring.pdf
Il Refactoring è il processo che cambia un un sistema software in modo che il comportamento esterno non cambi, ma fa sì che la struttura interna sia migliorata, molte volte fare refactoring significa trasformare il codice in metodi più semplici e leggibili. Ci sono diverse tecniche per fare questa cosa, nel corso ne vedremo una decina.
Ci sono diversi vantaggi se si fa refactoring:
- la dimensione del codice si riduce
- la struttura diventa più semplice
- si evita di introdurre debito tecnico all’interno della proggettazzione
debito tecnico: indica una situazione in cui per poter arrivare a certe scadenze di produzione del software agiamo con velocità e produciamo del codice che non ha una struttura ideale, se questa cosa viene fatta continuamente si arriva ad un certo punto in cui il nostro software è scritto male. Fare refactoring risolve questo problema.
Cambiare il codice per fare refactoring è rischioso, perché modificando il codice potremmo introdurre dei bug, per questo è importante creare i test, questi ci aiutano a capire se le funzionalità sono rimaste le stesse anche cambiando il codice