2017-02-15 9 views
0

現在、Groovy-spock でelseを使用している場合:は、ifが実行され、elseは実行されません。 spockテストの中でif-elseを実装する他の方法はありますか?私はスイッチケースを試して、同じものに遭遇した。Groovy-spockテストでif-elseステートメントを使用する

によりグルーヴィーな真実「Y」に
if (value == 'x' || 'y' || 'z') { 
    //execute below info 
} else if (value == 'a') { 
    //execute below info 
} 
+0

をあなたがこれを持っていない理由: '' '|| 'y' || 'y' '' '? – dsharew

答えて

1

がブールとして扱われ、他のが実行されていない理由、それはです。

おそらくあなたは、この評価しよう:私はこのコメントにするために持っている場合わからない

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

私は2番目のものを使いました。ご協力いただきありがとうございます! :) – Rebeller

0

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

をしかし、また、あなたがもし、式を変更しようとすることができますまたは答え。

文字のリテラル'y'は常にtrueに評価されるため、value == 'x' || 'y' || 'y'は常にtrueであるため、elseブロックのコードは実行されません。

空でない文字列、GStringsおよびCharSequencesがtrueに強制されます。

これを試してみてください:if (value == 'x' || value == 'y')

+0

ありがとうございます。ありがとうDegen! – Rebeller

関連する問題