在 Groovy 中使用 if-else 语句 - spock 测试
Using if-else statement inside Groovy - spock test
目前,当我在 Groovy - spock when: 中使用 if else 时,只有 if 被执行而 else 没有。还有其他方法可以在 spock 测试中实现 if-else 吗?我尝试了 switch case 并遇到了同样的情况。
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-expression修改为:
if (value in ['x', 'y', 'y']) {...}
我不确定我是否必须对此发表评论或回答。
else 块下的代码未执行,因为 value == 'x' || 'y' || 'y'
始终为真,因为字符文字 'y'
始终计算为真。
Non-empty Strings, GStrings and CharSequences are coerced to true.
试试这个:if (value == 'x' || value == 'y' )
目前,当我在 Groovy - spock when: 中使用 if else 时,只有 if 被执行而 else 没有。还有其他方法可以在 spock 测试中实现 if-else 吗?我尝试了 switch case 并遇到了同样的情况。
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-expression修改为:
if (value in ['x', 'y', 'y']) {...}
我不确定我是否必须对此发表评论或回答。
else 块下的代码未执行,因为 value == 'x' || 'y' || 'y'
始终为真,因为字符文字 'y'
始终计算为真。
Non-empty Strings, GStrings and CharSequences are coerced to true.
试试这个:if (value == 'x' || value == 'y' )