Comment utiliser l'instruction if else avec Groovy?
je suis en utilisant un Groovy étape avec Soapui.
Le code suivant fonctionne bien, mais il semble être long et répétitif:
if(response.comp.type[3] == "value1")
log.info ("value1 is present")
else
log.info ("value1 is not present")
if(response.comp.bucket[3] == null)
log.info ("bucket = null")
else
log.info ("bucket is not null")
if(response.comp.cycle[3] == "new")
log.info ("settings cycle = new")
else
log.info ("settings cycle is null")
Est-il possible de faire la même chose dans un test, au lieu de répéter le SI et l'AUTRE sur chaque ligne.
j'ai essayé avec des TRY CATCH mais je ne peut pas avoir la trace de la pile de l'erreur.
N'importe qui peut aider à réduire le code.
Merci
Comme par exemples, des réponses et des commentaires, je suis la recherche de ce difficile de généraliser, il semble que chaque cas est assez spécifique.
OriginalL'auteur kirk douglas | 2014-12-10
Vous devez vous connecter pour publier un commentaire.
Que les champs sont tous différents, vous avez encore besoin pour faire de chaque case, mais une forme plus concise serait:
Avec un peu plus d'effort, vous pouvez réduire la duplication, mais au risque de rendre le code plus difficile à lire. E. g.
Comme vous pouvez le voir, dans ce cas au moins, la deuxième forme est plus difficile à lire.
Mais le problème, la réponse pourrait changer, donc je ne peux pas mettre à jour à chaque fois, si je peux ce sera compliquer le code
OriginalL'auteur Michael Rutherfurd
je ne sais pas si ce sera de votre préférence, mais vous pouvez utiliser
switch
au lieu d'avoir une longueif..else
instruction comme:où
x
est la valeur que vous attribuez à elle. et faire de même pourresponse.comp.bucket[]
etresponse.comp.cycle[]
Modifier
J'ai modifié le code, a déclaré x ainsi qu'avec le titulaire de la réponse.comp.type[3] et vérifie si il a le "valeur1".
ce que je voulais dire en mettant x en
response.comp.try[x]
est que la valeur dépend de ce que vous allez mettre dedans. basé sur votre exemple, vous avezresponse.comp.type[3]
ensuite, vous aurez à mettre dans l'instruction switch commeswitch(response.comp.type[3])
OriginalL'auteur nap011