Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

438
Visualizações
¿Cómo usar la base de datos real para las pruebas de integración?

Hubo algunas soluciones propuestas a la pregunta "Cómo probar sentencias SQL en una aplicación" -

  • Uso de la memoria RAM: no puedo cambiar la configuración del entorno de ensayo donde se realizan las pruebas.
  • Uso de H2: no es muy compatible incluso en modo PostgreSQL
  • Utilice la misma base de datos para ejecutar las pruebas.
  • Uso del modo en memoria: PostgreSQL no tiene uno.

El tercero era viable y busqué contenedores de prueba, que en realidad es una solución hermosa pero relativamente nueva. Como resultado, nuestra empresa es escéptica de adoptarlo.

Usamos Mybatis para acceder a PostgreSQL .

Otra forma sería recrear el esquema completo y completar las tablas requeridas antes de las pruebas. Aquí está el problema, podría crear y eliminar esquemas con tablas con el mismo nombre. Para evitar la colisión de nombres, tendría que cambiar el nombre del esquema, como resultado, incluso las consultas deberían cambiarse de nombre, lo que no es lo mejor. ¿Hay alguna manera de hacer esto sin cambiar las consultas pero apuntándolas al esquema ficticio?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

NO debe cambiar sus consultas. En las pruebas, solo debe cambiar la URL de conexión que usará su aplicación. El problema es cómo hacer que esa URL funcione.

Para tener una cobertura de prueba completa, necesita la misma base de datos (como notó, h2 y otras bases de datos en memoria no son muy compatibles). postgres no tiene modo en memoria, por lo que debe administrar el ciclo de vida usted mismo. hay algunas decisiones que tienes que tomar. Algunos:

  • ¿De dónde obtendrá la base de datos: requiere que todos los desarrolladores proporcionen postgres (instalación/docker/vagabundo) o automaticen la configuración?

  • cómo preparar db para las pruebas: configuración y limpieza manual del esquema?

  • cómo restablecer db entre pruebas: reiniciar? siempre revertir? contenido predefinido y definido por separado? algún tipo de operaciones inversas?

  • si y como hacer esas pruebas rapidas?

Hay algunas herramientas que pueden ayudarte a resolver algunos de los problemas:

  1. testcontainers lo ayudará a proporcionar db.

  2. dbunit : lo ayudará a preparar los datos para su prueba.

    contras:

    • se requiere mucho trabajo para crear y mantener el esquema y los datos. especialmente cuando su proyecto se encuentra en una etapa de desarrollo intensivo.
    • es otra capa de abstracción, por lo que si de repente desea utilizar alguna función de db que no es compatible con esta herramienta, puede ser difícil probarla
  3. testegration : intenta proporcionarle un ciclo de vida completo, listo para usar y extensible (divulgación: soy un creador).

    contras:

    • gratis solo para pequeños proyectos
    • proyecto muy joven

también puede llenar los huecos por su cuenta. como siempre es un intercambio: tiempo vs dinero

over 4 years ago · Santiago Trujillo Relatório

0

puede definir la configuración de la base de datos para fines de prueba y conectarse a su base de datos real para ejecutar pruebas. debe acceder a la configuración de la base de datos de prueba en las clases de prueba.

por ejemplo, si usa spring e hibernate para conectarse a la base de datos, puede definir un archivo xml de configuración de prueba de hibernación donde se conecta a la base de datos de prueba. luego, en sus clases de prueba, use este archivo de configuración de la siguiente manera:

 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguratiion({testHibernate.xml, testSpring.xml , .... }) @TestExecutionListeners({...}) public class TestClass { .... @Test public void test1(){ ... } }

por lo tanto, puede acceder a su fábrica de sesiones de hibernación de prueba para ejecutar sus consultas.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda