Spring: pruebas unitarias y de integración
Estoy buscando las mejores prácticas para configurar pruebas de unidad e integración con Spring.
Usualmente uso 3 tipos de pruebas:
pruebas unitarias "reales" (sin dependencias)Las pruebas se ejecutan como prueba de "unidad" (DB en memoria, llamadas locales, objetos simulados, ...) o como prueba de integración (DB persistente, llamadas remotas, ...)las pruebas se ejecutan solo como pruebas de integraciónActualmente solo tengo pruebas de la segunda categoría, que es la parte difícil. Configuré una clase de prueba básica como:
@ContextConfiguration(locations = { "/my_spring_test.xml" })
public abstract class AbstractMyTestCase extends AbstractJUnit4SpringContextTests
Y pruebas de "unidad" como:
public class FooTest extends AbstractMyTestCase
con atributos con cable automático.
¿Cuál es la mejor manera de ejecutar la prueba en un entorno diferente (prueba de integración)? ¿Subclasificar la prueba y anular la ContextConfiguration?
@ContextConfiguration(locations = { "/my_spring_integration_test.xml" })
public class FooIntegrationTest extends FooTest
¿Funcionaría (actualmente no puedo probarlo fácilmente aquí)? El problema con este enfoque es que "@ContextConfiguration (ubicaciones = {" /my_spring_integration_test.xml "})" se duplica mucho.
¿Alguna sugerencia?
Saludos, Florian