2017-02-15 6 views
0

В настоящее время, когда я использую if else в Groovy - spock , когда:, выполняется только if, а else - нет. Есть ли другой способ реализации if-else внутри тестов spock? Я попробовал коммутатор и столкнулся с тем же.Использование инструкции if-else внутри теста Groovy - spock

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

почему у вас это: '' '|| 'y' || 'y' '' '? – dsharew

ответ

1

Благодаря Отлич- истины «у» трактуется как логическое истинного, поэтому еще не выполняется.

Вероятно, вы пытались оценить это:

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

Но также вы можете попытаться изменить если-выражение:

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

Я использовал второй, он работает. Спасибо за вашу помощь! :) – Rebeller

0

Я не уверен, если я должен сделать это комментарий или ответ.

Ваш код под блоком else не выполняется, потому что value == 'x' || 'y' || 'y' всегда истинно, потому что символ буква 'y' всегда оценивается как true.

Непустые строки, GStrings и CharSequences приведены к истине.

Попробуйте это: if (value == 'x' || value == 'y')

+0

Получил это. Спасибо, Деген! – Rebeller

Смежные вопросы