千家信息网

spock中如何使groovy语法

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,本篇文章给大家分享的是有关spock中如何使groovy语法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。引言在使用spock测试框架时
千家信息网最后更新 2025年02月03日spock中如何使groovy语法

本篇文章给大家分享的是有关spock中如何使groovy语法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

引言

在使用spock测试框架时,常常会有如下的测试代码出现:

    // 测试方法    def "test plus 1"() {        given: "准备数据"        def a = 1        def b = 2        when: "测试方法"        def c = calculateService.plus(a, b)        then: "校验结果"        c == 4 - 1    }

很多人把它当作固定格式来看待 ,尤其是像我这种从java几天内上手groovy和spock的,几乎不会去深究这是什么语法。

其实,在spock框架中,使用到一些groovy特有的语法格式,这些语法在Java中并不常见,具体如下:

Labeled statements 标签语句

Any statement can be associated with a label. Labels do not impact the semantics of the code and can be used to make the code easier to read like in the following example:

任何语句都可以关联一个标签,这样不但不改变语义,还可以让语句的可读性更强,如下:

given:    def x = 1    def y = 2when:    def z = x+ythen:    assert z == 3

其实,在java中也有标签语句,如下代码:

for (int i=0;i<10;i++) {    for (int j=0;j

虽然上面的代码是符合语法的,但是java中一般不推荐使用标签语句。但是在使用groovy语言的spock测试框架中,这种语法很流行,因为它确实让测试代码更加简单明了。

Power assertion 强断言/强力断言

Power assertion 强断言/强力断言,就是在断言失败时,提供一个可视化的表达,让我们更清楚地看到断言失败的原因以及断言语句每一部分的运算结果。

例如,执行以下断言语句:

assert 1+1 == 3

将会打印出以下内容:

Caught: Assertion failed:assert 1+1 == 3        |  |        2  false

当断言语句更加复杂时,power assertion 则更加能发挥出优势来。例如,下面spock框架具体测试用例和答应出的结果:

power assertion

data tables

    def "test1"() {        given: "准备mock数据"        expect: "测试方法"        z == calculateService.plus(x, y)        where: "校验结果"        x | y || z        1 | 0 || 1        2 | 1 || 3    }

以上就是spock中如何使groovy语法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

0