MUnit test recorder

MUnit test recorder

Ciao Developer, in questo articolo ti voglio spiegare e mostrare tramite un esempio funzionante, come creare e gestire dei test recorder con MUnit.

MUnit gioca un ruolo fondamentale nel testare flussi di applicazioni create con Mule. Tuttavia, le MUnit non sono facili da scrivere e ci vuole una notevole quantità di tempo. Inoltre, se un flusso viene modificato bisogna aggiornare gli MUnit perchè funzioni ancora.

Mulesoft ha recentemente introdotto un modo automatizzato per creare gli MUnit, chiamato: MUnit test recorder.

Sostanzialmente un tool integrato (molto bene) in Studio che, una volta selezionato ed eseguito il flusso che si desidera testare, registra input e output di ogni componente processata. Una volta finita l’esecuzione del test, il tool ci permette di definire (es: moke di un componente) il test che a valle dello wizard verrà generato automaticamente.

Vediamo insieme come funziona.

L’esempio proposto è una semplice API di uno shop online. La API espone un metodo GET:/orders che seleziona la lista degli ordini dal database.
Il database si basa sul motore Mysql. Per la creazione delle tabella ho utilizzato Liquibase, in questo modo potete benissimo cambiare tipo di database con semplicità.
Se non lo conosci leggi l’articolo introduttivo che ho dedicato a questa tecnologia: I love LiquiBase

Come registrare il test

Fare clic con il pulsante destro del mouse sul flusso per il quale si desidera creare MUnit come mostrato di seguito:

MUnit test recorder create

Mule avvierà il processo di creazione in backend, facendo partire il runtime. Quindi, assicurati che la connettività al DB e ad altri sistemi funzioni correttamente. Altrimenti il ​​recorder non partirà. Una volta avviato il recorder, verrà visualizzato il popup Test Recorder con l’opzione “configure Test” disabilitata.

Inizio configurazione della registrazione

A questo punto mediante la API console (o qualsiasi strumento per testare) dobbiamo invocare la API, in modo che avvenga la registrazione.

Dopo aver simulato la chiamata al nostro metodo GET:/orders, tornando su Studio noteremo che il pulsante per la configurazione sarà ora abilitato.

MUnit test recorder configurazione

Setup del test

Fai clic sull’opzione “Configure test” e apparirà la schermata seguente, dove è possibile definire il nome del test e il nome del file della suite di test.

MUnit test recorder setup

Fai clic su Avanti, verrà visualizzata la schermata seguente in cui sarà possibile vedere vari elaboratori di messaggi nel flusso e l’opzione per impostare l’evento di input come nella schermata seguente.

MUnit test recorder wizard setup

Nella parte sinistra si evincono le componenti in gioco nel flusso e, in base all’item selezionato, nella parte destra troveremo le varie informazioni e setup.

In questo caso per esercizio andremo a rendere creare un Moke del connettore DB che si occupa del recupero dei dati nel database in modo da rendere i test indipendenti dalla connessione verso il database (molto realistico in un contesto di rilascio basato su continuous integration).
Fai click su “Orders: Select” e come possiamo vedere, selezionando “Moke this processor”, il recorder ha già intercettato l’output del componente che possiamo utilizzare come dato statico.

Generare il moke di un componente

Fai click su Next. Poiché non vogliamo fare nulla per questo flusso, lo lasceremo come impostazione predefinita.
Una volta chiuso il wizard ci troveremo la MUnit generata in automatico per il nostro flusso.

Test generato da munit test recorder

Come puoi notare, nella parte sinistra, nella directory mule/test/resources, il recorder ha generato tutti i file con gli script utilizzati dal test per valorizzare l’evento da processare nel flusso.

Eseguire il test

A questo punto non resta che eseguire il test, direttamente da riga di comando con Maven oppure da Studio come nel mio caso. Tasto destro sul test e click su “Run MUnit test” e ci aspettiamo che appaia il semaforo verde.

Eseguire il test

Conclusioni

Non sono un amante dei “generatori di codice” ma devo dire, che in questo caso Mule ci dimostra con i fatti la potenzialità dello strumento. Tuttavia, ci sono alcune limitazioni per approfondimenti vi consiglio una lettura della documentazione ufficiale.

L’esempio completo utilizzato in questo articolo lo trovi qui: https://Bonny@bitbucket.org/Bonny/munit-recorder-example.git

Software utilizzato: Anypoint Studio version 7.7, Mule runtime 4.3, MUnit version 2.3.1.

Leggi anche: Modulo Java per Mule

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

quattro + nove =