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

593
Visualizações
Cómo escribir pruebas unitarias para Jooq Select Query en junit
 public <Class> getClassbyName(String name) { private DSLContext context; return context.selectFrom(Table) .where(Table.NAME.equal(name)) .fetchOneInto(Class.class); }

Tengo este tipo de función. Necesito escribir una prueba de unidad para esta consulta de selección en JOOQ. ¿Alguien tiene alguna idea?

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

0

Probar clientes de sus métodos

Si desea probar la lógica de las personas que llaman a ese método, puede simular el método con una biblioteca de terceros como mockito . Esto le permitirá producir un conjunto de valores de retorno de Class esperados para un conjunto de valores de String name de entrada conocidos.

También puede probar la integración de todo lo que se muestra a continuación, que funciona para toda su aplicación.

Podría intentar burlarse de jOOQ en sí ( y jOOQ ofrece tales herramientas ), pero recomiendo encarecidamente que no lo haga. Más temprano que tarde, implementará un RDBMS completo.

Probar la corrección de su consulta

Si quiere estar seguro de que su consulta es correcta y no produce, por ejemplo, productos cartesianos no deseados o valores null , etc., debe ejecutar pruebas de integración.

Idealmente, sus pruebas de integración están lo más cerca posible de su entorno de producción. Por ejemplo, si usa PostgreSQL, debe ejecutar esta consulta en una instancia real de PostgreSQL con un conjunto de datos conocido. Una buena utilidad para ejecutar este tipo de pruebas es testcontainers , pero también hay otras formas de automatizar las pruebas en una instancia de base de datos real.

Una forma menos recomendada (pero más rápida y quizás más conveniente si sus consultas son simples) sería ejecutar sus pruebas de integración en una base de datos en memoria, como H2 . Esto es más rápido, pero el precio es alto:

  • Ya no puede utilizar funciones específicas del proveedor de su producto de base de datos de producción
  • Deberá ajustar el esquema de su base de datos al mínimo común denominador de lo que se admite entre su base de datos de producción y la base de datos de prueba, por ejemplo, tipos de datos, etc.

Sin embargo, esta es una opción viable si su aplicación admite más de un producto de base de datos de producción, en cuyo caso las dos advertencias anteriores son un problema que tiene en producción de todos modos.

Sin embargo, todavía usaría contenedores de prueba para la mayoría de las pruebas. Aquí hay un ejemplo rápido de lo fácil que es configurar la generación de código con contenedores de prueba, por ejemplo: https://github.com/jOOQ/jOOQ/tree/main/jOOQ-examples/jOOQ-testcontainers-example

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