TestNG - Panoramica
Il test è il processo di verifica della funzionalità di un'applicazione per assicurarsi che funzioni secondo i requisiti. Il test unitario entra in scena a livello di sviluppatore, dove vengono prese misure adeguate per testare ogni singola entità (classe o metodo) per garantire che il prodotto finale soddisfi i requisiti.
JUnit ha spinto gli sviluppatori a comprendere l'utilità dei test, in particolare degli unit test, rispetto a qualsiasi altro framework di test. Sfruttando un'architettura piuttosto semplice, pragmatica e rigorosa, JUnit è stata in grado di "infettare" un gran numero di sviluppatori. Dai un'occhiata al nostro tutorial su JUnit per avere una buona comprensione delle sue caratteristiche. JUnit, allo stesso tempo, presenta anche alcune carenze, elencate di seguito:
Inizialmente progettato per abilitare solo i test unitari, ora utilizzato per tutti i tipi di test.
Impossibile eseguire il test delle dipendenze.
Scarso controllo della configurazione (setUp / tearDown).
Intrusivo (ti costringe a estendere le classi e nominare i tuoi metodi in un certo modo).
Modello di programmazione statico (costringe a ricompilare inutilmente).
La gestione di diverse suite di test in progetti complessi può essere molto complicata.
Cos'è TestNG?
La definizione di TestNG secondo la sua documentazione è la seguente:
TestNG è un framework di test ispirato a JUnit e NUnit, ma che introduce alcune nuove funzionalità che lo rendono più potente e facile da usare.
TestNG è un framework di test automatizzato open source; doveNG si intende NextGenerazione. TestNG è simile a JUnit (specialmente JUnit 4), ma non è un'estensione JUnit. Si ispira a JUnit. È progettato per essere migliore di JUnit, soprattutto durante il test di classi integrate. Il creatore di TestNG è Cedric Beust .
Eliminando la maggior parte dei limiti del vecchio framework, TestNG offre allo sviluppatore la possibilità di scrivere test più flessibili e potenti. Poiché prende in prestito pesantemente dalle annotazioni Java (introdotte con JDK 5.0) per definire i test, può anche mostrare come utilizzare questa nuova funzionalità del linguaggio Java in un ambiente di produzione reale.
Caratteristiche di TestNG
Supporta le annotazioni.
TestNG utilizza più funzionalità Java e OO.
Supporta il test delle classi integrate (ad esempio, per impostazione predefinita, non è necessario creare una nuova istanza della classe di test per ogni metodo di test).
Separa il codice di test in fase di compilazione dalla configurazione in fase di esecuzione / informazioni sui dati.
Configurazione flessibile del runtime.
Introduce "gruppi di prova". Dopo aver compilato i test, puoi semplicemente chiedere a TestNG di eseguire tutti i test "front-end", o "veloci", "lenti", "database", ecc.
Supporta metodi di test dipendenti, test paralleli, test di carico e guasti parziali.
API plug-in flessibile.
Supporto per test multi thread.