2017-02-15 1 views
0

현재 Groovy-spock 에있는 다른 사용자를 사용할 때 :은 if 만 실행되고 else는 실행되지 않습니다. Spock 테스트에서 if-else를 구현하는 다른 방법이 있습니까? 나는 스위치 케이스를 시험해 보았고 같은 것을 만났다. 다른 이 실행되지 않는 이유 인해 끝내 진실 'Y'로Groovy - spock 테스트에서 if-else 문 사용

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

또는 대답.

문자 리터럴 'y'이 항상 true로 평가되기 때문에 value == 'x' || 'y' || 'y'이 항상 true이기 때문에 else 블록 아래의 코드가 실행되지 않습니다.

비어 있지 않은 문자열, GString 및 CharSequences는 true로 강제 변환됩니다.

이 시도 : if (value == 'x' || value == 'y')

+0

알았어. Degen에게 감사드립니다! – Rebeller

관련 문제