我只是注意到,如果我if在expect块中添加一个子句,Spock不会断言条件
def myTest() {
given:
a = true
expect:
if ( a ) {
1 == 2
}
else {
1 == 1
}
}
Run Code Online (Sandbox Code Playgroud)
由于未检查条件,上述测试将通过.或者条件检查没有转发通过if语句.
解决方法是assert在if块中添加语句,即断言1 == 2.
我感兴趣的是,为什么功能是这样的?还有其他方法可以解决这个问题吗?我假设这与Groovy if语句功能有关,但我不太清楚语言细节.很可能if语句没有为Spock的expect块提供任何返回.