¿Es posible utilizar el 'partido' de karate dentro de una declaración condicional?
Encuentre el ejemplo aquí.
def a = condition ? " karate match statement " : "karate match statement"
¿Es posible hacer algo como esto?
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 el
Scenario
- use lógica condicional para establecer variables de "valor esperado" en lugar de complicar su
match
lógica - utilizar expresiones de autovalidación o expresiones de validación de esquema para partes específicas del JSON
- use la
if
palabra 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 match
ví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
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