2 votes

Quelle est la bonne façon de vérifier si une entrée a une valeur inférieure à x dans Cypress ?

J'essaie de vérifier si la valeur de an est inférieure à x. Quelle est la meilleure façon de tester cela dans Cypress ?

Exemple de code (qui ne fonctionne pas) :

cy.get('.number-input').type('200').should('have.value.lt', '201')

Je sais que je pourrais le faire avec un callback, mais cela semble un peu désordonné, surtout si l'on considère que c'est bien de tester si l'entrée est -exactement- quelque chose :

cy.get('.number-input').type('200').should('have.value', '200')

1voto

Richard Matsen Points 7624

Chai lt est valable (voir Chai.js cheatsheet ), mais elle nécessite des valeurs numériques et <input /> est toujours une chaîne de caractères, vous devrez donc la convertir en un nombre.

Aussi, le Cyprès .should('have.value.lt', '201') est une combinaison d'opérateurs jQuery et chai, ce qui, d'après le message d'erreur, est manifestement illégal (la syntaxe de la commande should params est un peu opaque, il suffit de faire des essais).

Alors, ça marche

cy.get('.number-input').type('200')
  .invoke('val')                         // call the val() method to extract the value
  .then(val => +val)                     // convert it to a number
  .then(val => console.log(typeof val))  // just to check the type
  .should('be.lt', 201)                  // also compare it to a number

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X