Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

316
Visualizações
¿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.

over 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

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.

over 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Assistente virtual