Quiero simular un ResultSet. Seriamente. Estoy refaccionando una gran pieza complicada de código que está analizando datos de ResultSet, y quiero que mi código se comporte de manera idéntica. Entonces, necesito escribir una prueba unitaria para la pieza que se está refactorizando para poder probar esto.Manera fácil de llenar ResultSet con datos
Tras Google me ocurrió con 2 ideas:
- Uso EasyMock, escribir looooong secuencia de burla. Solución MUY MALA: datos iniciales difíciles de agregar, datos difíciles de cambiar, grandes promesas de depuración de pruebas.
- Utilice Apache Derby o HSQLDB para crear una base de datos en memoria, llenarla desde un archivo o matriz de cadenas, consultar con InMemoryDBUtils.query (sql) mágico. Luego usa ese ResultSet. Desafortunadamente, no encontré ningún InMemoryDBUtils mágico para escribir la prueba rápidamente :-). El artículo de IBM "Prueba unitaria aislada de persistencia con Derby" parece estar bien sobre lo que necesito, aunque ...
El segundo enfoque parece algo más fácil y mucho más compatible.
¿Qué aconsejaría para crear un simulacro? (a pesar de los médicos, por supuesto :-)? ¿Me falta
una ceja
alguna bala de plata? Posiblemente, ¿DBUnit es la herramienta para esto?
Hola, Yishai, gracias por tus comentarios. Me burlaré de unos 100 registros por cada una de las 10 o más pruebas, con un registro que consta de 10 campos. Esto, AFAIU, me deja con DBUnit para almacenar los datos en el archivo y la implementación de ResultSet personalizada. Gracias de nuevo por responder. – DiaWorD
De nada. Yo diría que si cada una de las 10 pruebas requiere datos diferentes, entonces sí, este sería un enfoque razonable. Con DBUnit puede tomar un ResultSet y escribirlo en XML, por lo que solo hace referencia a eso en la prueba. – Yishai