Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

159
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!