Nella mia azienda, abbiamo una serie crescente di test di integrazione utilizzando JUnit in un'applicazione Web Java. Ogni test utilizza alcuni file XML esterni specifici per popolare il database con i dati necessari per il test. Il problema è:Manutenzione costosa con dati di test automatizzati
- Quando c'è un cambiamento del modello, ci vorrà molto tempo per correggere tutti i file XML (abbiamo centinaia di file XML, molti di loro con ridondanza).
- La complessità della creazione di un file XML scoraggia manualmente il programmatore per esplorare diversi scenari.
- Non abbiamo un collegamento tra i dati di test e il test (ad esempio, al test non conosco il "nome" dell'utente inserito dall'XML). Potremmo codificare in modo rigido le informazioni di cui abbiamo bisogno, ma aumenterebbe anche il tempo di manutenzione per mantenere sincronizzati sia i dati XML che quelli codificati.
Affrontando questo problema, ho iniziato a pensare di usare il CRUD del proprio sistema per generare i dati di test per ogni test. All'inizio di ogni test eseguirò alcuni metodi per mantenere i dati desiderati per il test. Nella mia visione, sarebbe risolvere tutti i 3 problemi poiché:
- Le modifiche apportate al modello di una modifica del CRUD comunque, quindi non sarebbe più necessario per correggere i dati di test.
- Sarebbe più semplice costruire, testare i dati perché non dovremmo preoccuparci di cose come l'identificazione id e la chiave esterna dell'entità manualmente.
- Avrei tutti i dati importanti nelle variabili con la sincronizzazione garantita dall'IDE.
ma, per me, manca esperienza e conoscenza per iniziare questo approccio. La domanda è: Questa soluzione è efficace? Questo approccio causa altri problemi? Dove posso trovare questo approccio in letteratura? C'è una soluzione migliore ai problemi elencati?
Potrebbe essere una domanda migliore per programmers.stackexchange – NESPowerGlove
Ho una risposta al punto 3: creare file XML che incapsulino sia i dati di test che i risultati previsti. Vorrei anche suggerire di dare un'occhiata a TestNG, che supporta l'alimentazione di più test case in un unico metodo di test. – biziclop
Memorizza i dati di test nel database e genera l'XML da quello. È più semplice modificare i dati in SQL e quindi creare l'XML. – Mike