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

279
Vistas
¿Hay alguna solución para esperar que una clave específica sea mayor que el valor dentro de objectContaining?

Estoy haciendo una prueba simple similar a la siguiente:

 it("Must fail", () => { const length = person.list().length; expect(person.add({ name: "John", age: -5, gender: 'M' })).toEqual( expect.objectContaining({ id: expect.any(Number), name: expect.any(String), age: expect.any(Number), gender: 'M' || 'F', // only 'M' or 'F' }) ); // to ensure that a new person was added expect(person.list().length).toEqual(length+1); });

El retorno de db.add es un objeto con el id incluido. Sin embargo, me gustaría esperar que la edad no sea solo cualquier número, sino también un número con una edad mayor o igual a cero.

Podría usar valores discretos en el género o especificar la age: 0 || 1 || 2 || 3 || ... , pero si quiero hacer coincidir el género con un patrón específico o especificar que la edad está en un rango de valores permitidos, ¿cómo podría hacerlo?

No puedo usar expect(age) inside, por lo que sé en mi investigación para esperar algo sobre el valor de las claves.

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

0

Parece que está tratando de hacer mucho en la menor cantidad de líneas de código posible, lo que lo coloca en esta situación, intente algo como esto:

 it("should set age to 0 when provided age is lower than 0", () => { const storedPerson = person.add({ name: "John", age: -5, gender: 'M' }); expect(storedPerson.age).toBe(0); });

Si desea verificar todos los valores pero no desea escribir 5 expect hacerlo, intente esto:

 it("should properly store new person", () => { const length = person.list().length; const expectedPerson = { id: expect.any(Number), name: "John", age: 0, gender: 'M' }; const storedPerson = person.add({ name: "John", age: -5, gender: 'M' }); expect(storedPerson).toEqual(expectedPerson); expect(person.list().length).toEqual(length+1); });

Pero para ser honesto, recomendaría mi primer ejemplo. Con el segundo, probaría mucho en una sola prueba, verificando la validación adecuada de la edad, verificando si se agregó la identificación, verificando los valores asignados correctamente y verificando la longitud de las listas. Cuando esa prueba falla, no sabría qué salió mal según el nombre de la prueba. En las pruebas unitarias, intente probar lo menos posible en una prueba.

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