Groovy 是否有方法获取在使用“时导致失败的特定语句?”;加上;斯波克条款

Groovy 是否有方法获取在使用“时导致失败的特定语句?”;加上;斯波克条款,groovy,spock,Groovy,Spock,我试图找到的是,当断言位于“with”中时,如果有一种方法可以识别导致错误的特定断言 理想情况下,我希望看到两个测试的相同具体结果 给定测试的结果为: Condition not satisfied: testInstance.with { trueParam falseParam } | | | false SpockSpec$TestMe@1cf4af1e at SpockSpec.Does not provides specific

我试图找到的是,当断言位于“with”中时,如果有一种方法可以识别导致错误的特定断言

理想情况下,我希望看到两个测试的相同具体结果

给定测试的结果为:

Condition not satisfied: testInstance.with { trueParam falseParam } | | | false SpockSpec$TestMe@1cf4af1e at SpockSpec.Does not provides specific failure(SpockSpec.groovy:10) Condition not satisfied: testInstance.falseParam // expected to fail | | | false SpockSpec$TestMe@24c2ffbc at SpockSpec.Provides specific failure(SpockSpec.groovy:19) 试一试


谢谢你的快速回复。您是否有描述此行为的链接。有趣的是,这只适用于Groovy类。获取Java类的错误。将不得不建立一个不同的样本。这是你正在寻找的@PranavShahIt应该适用于任何类,而不仅仅是Groovy类。@PeterNiederwieser我不知道我之前在做什么,但现在它确实起作用了。

import spock.lang.Specification
import spock.lang.Unroll

@Unroll
class SpockSpec extends Specification {
    def testInstance = new TestMe(trueParam: true, falseParam: false)

    def "Does not provides specific failure"() {
        expect:
        testInstance.with {
            trueParam
            falseParam
        }
    }

    def "Provides specific failure"() {
        expect:
        testInstance.trueParam
        testInstance.falseParam     // expected to fail
    }

    class TestMe {
        boolean trueParam, falseParam
    }
}

def "Does not provides specific failure"() {
    expect:
    with( testInstance ) {
        trueParam
        falseParam
    }
}