2010-06-10 16 views
5

Siamo di fronte a un problema nella gestione dei dati di test (xmls che viene utilizzato per creare oggetti fittizi). I dati che abbiamo attualmente si sono evoluti per un lungo periodo di tempo. Ogni volta che aggiungiamo nuove funzionalità o test case, aggiungiamo nuovi dati per testare tale funzionalità. Ora, il problema è quando i requisiti aziendali cambiano il formato (come la lunghezza o il formato di una variabile) o qualsiasi cambiamento che i dati di test non supportano, abbiamo bisogno di cambiare l'intero dato di test che è di 100s di MB in dimensioni. Qualcuno potrebbe suggerire un metodo o un processo migliore per superare questo problema? Qualsiasi suggerimento sarebbe apprezzato.Gestione dei dati di test per i test Junit

risposta

7

Personalmente, starei lontano dalla creazione di dati per il caso di test in qualsiasi altro posto all'interno dei casi di test. Invece di creare dati di test, crea generatori di dati che consentono la generazione rapida di oggetti all'interno di ogni caso di test o all'interno di ciascun blocco precedente.

Questo ha due vantaggi principali:

  1. rende il test più facile da leggere come lo sviluppatore può vedere esattamente quali vengono utilizzati oggetti e
  2. Va notevolmente ridurre la quantità di prova dati che devi gestire

Riservare i dati di test per test funzionali e di integrazione e utilizzare uno strumento come DBDeploy per gestire tali dati. Questi dati devono essere mantenuti intenzionalmente piccoli. L'utilizzo di DBDeploy e DBUnit consente di pulire il database prima di ogni test o suite di test. Questo dovrebbe anche limitare la quantità di dati di cui hai bisogno poiché aumenta notevolmente il riutilizzo dei dati.

+0

Grazie Chris. Era una buona intuizione. – nobody

3

Mentre questa non è una soluzione completa al problema, ma sarebbe sicuramente aiutare (specialmente nel vostro caso poiché avete 100s di MB di dati) - Scrivere test basati sulla verifica comportamento invece di dati di verifica.

Martin Fowler ha un ottimo articolo here

+0

Grazie Mihir. Trovato l'articolo utile. – nobody