groovy - 有没有办法获取在Spock中使用 "with"子句时导致失败的具体语句

标签 groovy spock

我试图找到的是,当断言位于“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)

Code:


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
    }
}

关于groovy - 有没有办法获取在Spock中使用 "with"子句时导致失败的具体语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21467061/

相关文章:

eclipse - 为什么 Eclipse STS 上没有 Grails 和 Groovy 的代码洞察?

java - 为什么 Gradle 将测试失败的构建标记为成功?

grails - 测试受 Spring 安全保护的页面

java - 将 Spock 的测试与 Sonar 集成

Groovy 葡萄在下载工件后卡住

groovy - 使用 Spock 和 Groovy 作为集成测试确保 REST

eclipse - Grails-开发建议-在哪里可以找到插件API/对错误进行疑难解答/让自己的生活更轻松

unit-testing - 在 spock 中运行测试时出现 MissingPropertyException

unit-testing - 使用 spock 在 Controller 中单元测试 session 变量

java - Gradle Groovy 语法 "configurations {all*.exclude ...}"