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

152
Vistas
Convenciones de nomenclatura de objetos auxiliares

Necesito realizar un conjunto de pruebas unitarias para una función que ordena una matriz en función de una combinación de 4 parámetros. La naturaleza de las funciones hace que tenga muchos casos extremos y necesito probarlos todos.

Para esto, planeo crear un conjunto de matrices Stub tanto para las entradas como para las salidas de la función. Pero tengo problemas para nombrar estos objetos auxiliares.

Mi primer pensamiento fue tener 2 stubs para cada caso de prueba, uno para la matriz inicial y otro para la matriz ordenada. Tal vez haciendo algo como esto:

 //test case: should prioritize duration over raw priority export const DifferentPriorityAndDurationStub = () => { const t1 = {priority: 1, duration: 20}; const t2 = {priority: 2, duration: 30}; return [t1, t2]; }; export const DifferentPriorityAndDurationStubResult= () => { const t1 = {priority: 1, duration: 20}; const t2 = {priority: 2, duration: 30}; return [t2, t1]; };

Luego, en la prueba real:

 describe('Custom Sorter', () => { it('should prioritize duration over raw priority', () => { const originalArray = DifferentPriorityAndDurationStub(); const result = DifferentPriorityAndDurationStubResult(); expect(customSorter.sort( originalArray )).toEqual(result ); }); });

Mi problema con este enfoque es que si alguien necesita trabajar en la función, el código de la prueba no les diría exactamente qué hay en las entradas y qué hay en la salida, tendrían que ir al archivo de resguardos. Creo que esto hace que sea difícil entender cómo deberían funcionar las funciones de clasificación en este caso específico.

La otra forma en que pensé fue algo como:

 export const Priority1Duration20 = () => { return {priority: 1, duration: 20}; }; export const Priority2Duration30 = () => { return {priority: 2, duration: 30}; };

Y en mi prueba hacer algo como esto:

 describe('Custom Sorter', () => { it('should prioritize duration over raw priority', () => { const Priority1Duration20 = Priority1Duration20(); const Priority2Duration30 = Priority2Duration30(); expect(customSorter.sort( [Priority1Duration20, Priority2Duration30] )) .toEqual([Priority2Duration30,Priority1Duration20]); }); });

Creo que esto parece más legible si alguien necesita entender cómo funciona el código. Pero también me preocupa que necesito hacer cambios en el archivo Stubs y el archivo de prueba para cambiar o corregir ciertos casos de prueba. En el primer enfoque, solo necesitaría arreglar el trozo y eso sería todo.

¿Algunas ideas? ¿Cómo abordarías esto?

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