【发布时间】:2025-11-27 03:15:02
【问题描述】:
我正在使用 geb,spock 使用 groovy,我正在为功能中的多个块使用功能。但是一个块失败而不是立即退出循环。 例如:-
def "test"(){
given:
println(" checking 3 nos")
when:
def a = 5
def b = 10
def c = 20
if (a < b)
println("Hi, I'm Pass")
then:
true
when:
def a1 = 5
def a2 = 10
def a3 = 20
if (a2 > a3)
println("Fail")
then:
false
when:
def a11 = 5
def a22 = 10
def a33 = 20
if (a33 > a11)
println("Hello, i'm pass")
then:
true
但这里它只重新运行嗨,我通过但不执行第三块,不返回第二块答案。请指导我。
【问题讨论】:
-
你能解释清楚吗?
then: true和then: false应该做什么? -
第二个然后块执行 false 并且测试失败,这是预期的行为。您的预期结果是什么?
-
Tim_yates, given, when and then 是语法。给定的是特征,什么时候是流,然后是返回类型。如果第二个块失败,则它不会继续第三个块。那么如何通过第二个运行第三个块失败。
-
正如 Jon 在他的回答中提到的,您可以为第三个块创建单独的测试。如果第三块不依赖于第一块和第二块,那可能会更有意义。