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