Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

588
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda