Java 在Groovy-spock测试中使用if-else语句
当前,当我在Groovy-spock中使用if-else时:,只执行if,而不执行else。在spock测试中是否有其他实现if-else的方法?我试过开关箱,也遇到了同样的问题Java 在Groovy-spock测试中使用if-else语句,java,testing,groovy,automated-tests,spock,Java,Testing,Groovy,Automated Tests,Spock,当前,当我在Groovy-spock中使用if-else时:,只执行if,而不执行else。在spock测试中是否有其他实现if-else的方法?我试过开关箱,也遇到了同样的问题 if (value == 'x' || 'y' || 'z') { //execute below info } else if (value == 'a') { //execute below info } 由于groovy真值“y”被视为布尔值true,这就是为什么不执行else 可能您试图对此进
if (value == 'x' || 'y' || 'z') {
//execute below info
} else if (value == 'a') {
//execute below info
}
由于groovy真值“y”被视为布尔值true,这就是为什么不执行else 可能您试图对此进行评估:
if (value == 'x' || value == 'y' || value == 'y') {
//execute below info
} else if (value == 'z'){
//execute below info
}
但也可以尝试将if表达式修改为:
if (value in ['x', 'y', 'y']) {...}
我不确定我是否必须对此作出评论或回答 else块下的代码未执行,因为
值=='x'| | |'y'| |'y'
始终为true,因为字符文本'y'
始终计算为true
非空字符串、gstring和charsequence被强制为true
试试这个:
如果(value='x'| value='y')
为什么会有这样的:````| | | | | y'```?我用了第二个,它可以工作。谢谢你的帮助!:)知道了。谢谢德根!