温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

spock中如何使groovy语法

发布时间:2021-06-18 14:59:46 来源:亿速云 阅读:274 作者:Leah 栏目:大数据

本篇文章给大家分享的是有关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 = 2
when:
    def z = x+y
then:
    assert z == 3

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

for (int i=0;i<10;i++) {
    for (int j=0;j<i;j++) {
        System.out.println(j);
        if (j == 5) {
            break exit;
        }
    }
    exit: System.out.println(i);
}

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

Power assertion 强断言/强力断言

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

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

assert 1+1 == 3

将会打印出以下内容:

Caught: Assertion failed:

assert 1+1 == 3
        |  |
        2  false

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

spock中如何使groovy语法

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语法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI