期望阻止的条件

时间:2015-08-22 15:16:45

标签: groovy spock

我只是注意到,如果我在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的期望块返回任何内容。

1 个答案:

答案 0 :(得分:6)

这与groovy无关。 Spock的documentation明确指出,textbufthen只考虑顶级表达式作为条件。这是设计的。

搜索顶部链接。