Guida ai Test
Framework di Test per Modulo
Modulo
Framework Test
Versione
Coverage Tool
GeCo.Alfa
JUnit 4, Vaadin TestBench 4
4.x
-
GecoService
JUnit 4
4.x
-
ElaborazioneService
JUnit 4, Mockito
1.9.5
-
ConnessioneService
JUnit 4
4.x
JaCoCo 0.8.1
MobileFineAdapterServer
Spring Boot Test
1.5.8
-
REST (Quarkus)
JUnit 5, QuarkusTest
2.16.5
-
MLib
JUnit 4
4.x
-
Eseguire i Test
# Test di un singolo modulo
cd <modulo> && mvn test
# Test con report coverage (ConnessioneService)
cd ConnessioneService && mvn test jacoco:report
# Test Quarkus (con database H2 in-memory)
cd REST && ./mvnw test
# Saltare i test durante il build
cd <modulo> && mvn clean package -DskipTests
Scrivere Test
Test JUnit 4 (Moduli Legacy)
import org.junit.Test ;
import static org.junit.Assert.* ;
public class VerbaleControllerTest {
@Test
public void testCalcoloScadenza () {
// Arrange
VerbaleController controller = new VerbaleController ();
Date dataVerbale = new Date ();
// Act
Date scadenza = controller . calcolaScadenza ( dataVerbale , 60 );
// Assert
assertNotNull ( scadenza );
assertTrue ( scadenza . after ( dataVerbale ));
}
@Test ( expected = IllegalArgumentException . class )
public void testCalcoloScadenzaDataNull () {
VerbaleController controller = new VerbaleController ();
controller . calcolaScadenza ( null , 60 );
}
}
Test con Mockito (ElaborazioneService)
import org.junit.Test ;
import org.mockito.Mockito ;
import static org.mockito.Mockito.* ;
public class PdfGeneratorTest {
@Test
public void testGenerazionePdf () {
// Mock del DAO
VerbaleDao mockDao = mock ( VerbaleDao . class );
when ( mockDao . findById ( 1L )). thenReturn ( new VvVerbale ());
PdfGenerator generator = new PdfGenerator ( mockDao );
byte [] pdf = generator . genera ( 1L );
assertNotNull ( pdf );
verify ( mockDao ). findById ( 1L );
}
}
Test Spring Boot (MobileFineAdapter)
import org.junit.Test ;
import org.junit.runner.RunWith ;
import org.springframework.boot.test.context.SpringBootTest ;
import org.springframework.test.context.junit4.SpringRunner ;
@RunWith ( SpringRunner . class )
@SpringBootTest
public class RestControllerCaricoTabelleFisseTest {
@Autowired
private TestRestTemplate restTemplate ;
@Test
public void testCaricaTabelle () {
ResponseEntity < String > response = restTemplate
. withBasicAuth ( "user" , "pass" )
. getForEntity ( "/mobile/api/tabelleFisse" , String . class );
assertEquals ( HttpStatus . OK , response . getStatusCode ());
}
}
Test Quarkus (REST Module)
import io.quarkus.test.junit.QuarkusTest ;
import org.junit.jupiter.api.Test ;
import static io.restassured.RestAssured.given ;
@QuarkusTest
public class VerbaleResourceTest {
@Test
public void testRicercaVerbale () {
given ()
. header ( "X-Realm" , "c_a662" )
. contentType ( "application/json" )
. body ( "{\"numero\": \"12345\"}" )
. when ()
. post ( "/verbale/ricerca" )
. then ()
. statusCode ( 200 );
}
}
Test Esistenti
File Test
Modulo
Cosa Testa
Geco_alfaTest.java
GeCo.Alfa
Test UI con Vaadin TestBench
MTableTest.java
GeCo.Alfa
Widget MTable personalizzato
MTextFieldTest.java
GeCo.Alfa
Widget MTextField personalizzato
TestMObjectConverter.java
GeCo.Alfa
Convertitore di oggetti
DocFly.java
ConnessioneService
Test integrazione DocFly
Cosa Testare
Priorita Alta
Business logic : Calcolo scadenze, importi sanzioni, punti patente
Validazione input : Codice fiscale, targhe, IBAN, date
Integrazioni PA : Mock delle chiamate esterne (ANPR, PND, INAD)
Endpoint REST : Autenticazione, autorizzazione, formato risposte
DAO/JPA : Query complesse, paginazione, ordinamento
PDF generation : Verifica template e contenuto PDF
Conversioni : DTO <-> Entity, formati data, encoding
Non Testare
Getter/setter semplici
Configurazione framework (Spring, Vaadin)
Codice generato (SOAP stub, JPA metamodel)
Coverage
# Genera report coverage (ConnessioneService)
cd ConnessioneService && mvn test jacoco:report
# Report disponibile in:
# target/site/jacoco/index.html
Obiettivo coverage: >70% per codice business logic.
16 febbraio 2026
14 febbraio 2026