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

174
Vistas
¿Debo pasar una instancia de base de datos a mis funciones o usar un indicador de prueba?

Estoy usando Jest, Node 12 y Postgres. Soy un novato en pruebas y leí que establecer un nuevo objeto de base de datos (en mi caso, con secuencia) es la mejor práctica en cada script de prueba. Entonces, si quiero probar una función en mi sistema, tendría que pasar esta nueva conexión a la base de datos como argumento para la función.

En este momento, lo estoy agregando al objeto ctx (o contexto) que ahora me doy cuenta de que podría tener algunos agujeros de seguridad.

¿Es mejor pasar la conexión de la base de datos como un argumento separado en una función, o inicializar la base de datos globalmente en una exportación en un archivo " db.js " o algo así, y luego pasar una bandera booleana en las funciones de mi sistema?

Es decir

 function myFunc(5, 'some data', ctx) { ... } // Where ctx.database is either my live db or test db

o

 function myFunc(5, 'some data', databaseInstance, ctx) { ... } // Where databaseInstance is either my live db or test db

o

 function myFunc(5, 'some data', isTest, ctx) { ... } // If isTest = true then use testDb object

y en db.js

 export const liveDb = { ... }; export const testDb = { ... };

En este contexto, por "mejor" me refiero a lo más seguro y lo más común.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La forma más común sería usar process.NODE_ENV para distinguir entre entornos de prueba, desarrollo y producción.

Entonces, su db.js se puede refactorizar en algo como esto:

 const liveDb = { ... }; const testDb = { ... }; let db = testDb; // default if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') { db = testDb } if (process.env.NODE_ENV === 'production') { db = liveDb } export default db;

De esa forma, cualquier importador de db.js recibirá el objeto db adecuado según el entorno actual. Jest establece automáticamente la variable NODE_ENV en 'test' . Además, la mayoría de los entornos de alojamiento de nodejs configurarán automáticamente NODE_ENV en 'producción', o puede configurarlo manualmente en su secuencia de comandos de inicio

about 4 years ago · Juan Pablo Isaza 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