2017-02-15 3 views
0

Derzeit wenn ich sonst in einem Groovy - spock wenn:, nur das if ausgeführt wird und das else ist nicht. Gibt es eine andere Möglichkeit, if-else in Spock-Tests zu implementieren? Ich habe versucht, Switch Case und stieß auf das gleiche.Verwenden von If-Else-Anweisung in Groovy - Spock-Test

if (value == 'x' || 'y' || 'z') { 
    //execute below info 
} else if (value == 'a') { 
    //execute below info 
} 
+0

warum Sie dies tun haben: '' '|| 'y' || 'y' '' '? – dsharew

Antwort

1

Aufgrund der 'y' groovy Wahrheit als boolean wahr behandelt wird, ist das, warum sonst nicht ausgeführt wird.

Wahrscheinlich haben Sie versucht, dies zu bewerten:

if (value == 'x' || value == 'y' || value == 'y') { 
    //execute below info 
} else if (value == 'z'){ 
    //execute below info 
} 

Sie können aber auch versuchen, den if-Ausdruck zu ändern:

if (value in ['x', 'y', 'y']) {...} 
+0

Ich habe die zweite verwendet, es funktioniert. Danke für Ihre Hilfe! :) – Rebeller

0

Ich bin nicht sicher, ob ich dies ein Kommentar machen oder eine Antwort.

Ihr Code unter dem Else-Block wird nicht ausgeführt, da value == 'x' || 'y' || 'y' immer wahr ist, weil das Zeichenliteral 'y' immer als wahr ausgewertet wird.

Nicht leere Strings, GStrings und CharSequences werden auf true gesetzt.

Versuchen Sie folgendes: if (value == 'x' || value == 'y')

+0

Bekam es. Danke Degen! – Rebeller

Verwandte Themen