期望块中的条件
Condition in expect block
我刚刚注意到,如果我在 expect 块中添加 if
子句,Spock 不会断言条件,如
def myTest() {
given:
a = true
expect:
if ( a ) {
1 == 2
}
else {
1 == 1
}
}
上面的 测试将通过 因为 条件没有被检查。 或者条件检查没有被转发通过 if 语句。
解决方法是在 if 块中添加 assert
语句,即断言 1 == 2。
我感兴趣的是,为什么功能是这样的?还有其他方法可以解决这个问题吗?我假设这与 Groovy if 语句功能有关,但我不太了解语言细节。很可能 if 语句不会 return Spock 的 expect 块可以使用的任何东西。
这与groovy无关。 Spock 的 documentation 明确指出在 then
和 expect
中仅将顶级表达式视为条件。这是设计使然。
在 link 中搜索顶部。
我刚刚注意到,如果我在 expect 块中添加 if
子句,Spock 不会断言条件,如
def myTest() {
given:
a = true
expect:
if ( a ) {
1 == 2
}
else {
1 == 1
}
}
上面的 测试将通过 因为 条件没有被检查。 或者条件检查没有被转发通过 if 语句。
解决方法是在 if 块中添加 assert
语句,即断言 1 == 2。
我感兴趣的是,为什么功能是这样的?还有其他方法可以解决这个问题吗?我假设这与 Groovy if 语句功能有关,但我不太了解语言细节。很可能 if 语句不会 return Spock 的 expect 块可以使用的任何东西。
这与groovy无关。 Spock 的 documentation 明确指出在 then
和 expect
中仅将顶级表达式视为条件。这是设计使然。
在 link 中搜索顶部。