Tengo que probar algunos servicios Thrift usando Junit. Cuando ejecuto mis pruebas como un cliente Thrift, los servicios modifican la base de datos del servidor. No puedo encontrar una buena solución que pueda limpiar la base de datos después de ejecutar cada prueba. La limpieza es importante, especialmente porque los ID deben ser únicos y actualmente se leen como un archivo XML. Ahora, tengo que cambiar manualmente los ID después de ejecutar las pruebas, de modo que el siguiente conjunto de pruebas pueda ejecutarse sin tirar la violación de la clave principal en la base de datos. Si puedo limpiar la base de datos después de cada prueba, entonces el problema está completamente resuelto, de lo contrario tendré que pensar en otras soluciones, como generar ID aleatorios y usarlos donde se requieran ID.Limpieza de la base de datos después de las pruebas Junit
Editar: Me gustaría hacer hincapié en que estoy probando un servicio, que está escribiendo en la base de datos, no tengo acceso directo a la base de datos. Pero dado que el servicio es nuestro, puedo modificar el servicio para proporcionar cualquier método de limpieza si es necesario.
"' A menos que esté probando acciones específicas de la base de datos (verificando que puede consultar o actualizar la base de datos, por ejemplo) sus JUnits no deberían estar escribiendo en una base de datos real. "No hay un acuerdo universal sobre esto. En un campo, tenemos personas que creen que la base de datos debe ser burlada y, por otro lado, tenemos aquellas que creen que todas las pruebas de bases de datos deben realizarse contra una base de datos real, idealmente una que coincida con la base de datos de producción. – Behrang
Lo siento, soy un poco nuevo en todo esto, estaba codificando en flex por un tiempo. ¿Podrían explicar lo que debo hacer? No estoy seguro de lo que quiere decir con clases simuladas y no modificando la base de datos. Normalmente, las pruebas que realizo crean nuevos clientes y utilizan ese cliente para crear pedidos y otras cosas. ¿A dónde iría toda esta información si no fuera a una base de datos? – Ashish
Cuando necesite recuperar datos, cree una clase e implemente el método, necesita devolver los datos que necesita. Si necesita guardar datos, cree una clase e implemente el método de guardar (como se llame). Este método solo puede almacenar los datos en variables de instancia. Si necesita guardar y recuperar, entonces esos métodos solo necesitan leer y escribir desde las mismas variables de instancia. – brainimus