期望阻止的条件

kas*_*tti 5 groovy spock

我只是注意到,如果我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块提供任何返回.

Ase*_*sal 7

这与groovy无关.Spock的文件明确指出,只有顶级表达式在考虑thenexpect作为条件.这是设计的.

搜索链接顶部.