¿Es posible utilizar el 'partido' de karate dentro de una declaración condicional?

Resuelto test-profile asked hace 6 años • 1 respuestas

Encuentre el ejemplo aquí.

def a = condition ? " karate match statement " : "karate match statement"

¿Es posible hacer algo como esto?

test-profile avatar May 15 '18 18:05 test-profile
Aceptado

Esta no es una práctica recomendada para las pruebas porque las pruebas deben ser deterministas .

Lo correcto es:

  • Elabore su solicitud para que la respuesta sea 100% predecible. No se preocupe por la duplicación de código, esto a veces es necesario para las pruebas.
  • ignorar los datos dinámicos si no son relevantes para elScenario
  • use lógica condicional para establecer variables de "valor esperado" en lugar de complicar su matchlógica
  • utilizar expresiones de autovalidación o expresiones de validación de esquema para partes específicas del JSON
  • use la ifpalabra clave y llame a un segundo archivo de funciones , o incluso puede configurar el nombre del archivo para llamar dinámicamente a través de una variable
  • en algunos casos karate.abort()se puede utilizar para saltar/salir anticipadamente condicionalmente

Dicho esto, si realmente insistes en hacer esto en el mismo flujo, Karate te permite hacerlo matchvía JS desde 0.9.6.RC4 en adelante.

Consulte este hilo para obtener más detalles: https://github.com/intuit/karate/issues/1202#issuecomment-653632397

ingrese la descripción de la imagen aquí

El resultado de karate.match()devolverá un JSON en el formulario{ pass: '#boolean', message: '#string' }

Si ninguna de las opciones anteriores funciona, eso significa que estás haciendo algo realmente complicado, así que escribe código/interoperabilidad Java para manejar esto.

Para aquellos que todavía insisten en el comportamiento aleatorio y la lógica condicional en las pruebas de UI, consulte: https://stackoverflow.com/a/76701268/143475

Peter Thomas avatar May 15 '2018 12:05 Peter Thomas