美文网首页
SpockFramework 测试框架介绍

SpockFramework 测试框架介绍

作者: 风动幡动001 | 来源:发表于2017-05-28 10:40 被阅读0次

            在最近1年的测试工作中,一直在用SpockFramework (简称Spock) 测试框架,它是基于Groovy语言来编写测试脚本,可以被集成到Spring中。 如果使用Spock测试框架最好去了解下Groovy,另外建议采用Gradle作为构建工具,gradle自带的测试报告挺不错的,样式简单明了又美观。

    现在说说Spock的具体应用:

    1,Specification

          在Spock中,由Specification定义待测系统的行为, 所有的Spock测试类都需要继承Specification,某种意义上你可以认为它是Spock测试框架的测试基类。

    2,常用的方法(看着很眼熟)

    def setup() {}          // run before every feature method

    def cleanup() {}        // run after every feature method

    def setupSpec() {}    // run before the first feature method

    def cleanupSpec() {}  // run after the last feature method

    3,Spock特有的特性(或语法)

          每个feature method又被划分为不同的block,不同的block处于测试执行的不同阶段,在测试运行时,各个block按照不同的顺序和规则被执行,如下图:

    4,Spock Blocks使用

    a) setup ,cleanup很明显分别是测试前预处理和测试后清理

    b)when ,then 需要搭配使用,有些类似Sql语句中的case ... when ... then

     c)  expect  此模块可以单独使用,它的语句块可以有多行,但每行必须是boolean表达式

         expect:

               1==1 && "a"=="a"

    d) where  个人觉得where语句是spock最吸引人的地方,它能让测试脚本变得优雅简介不重复。

    请看例子:

    在测试中,一个方法或接口,我们要考虑不同的输入情况,而处理逻辑是一样的,如果用Junit需要写好几个测试方法,而Spock只需要1个。上例中求两个数中最大值,我们只需要将所有的测试用例放在where:语句块中就完事了。

    PS:如果有@Unroll注解,在执行case时,上面的例子算3个测试case,

            没有该注解则算1个case

    where:语句块还有另外一种写法:接受一个集合list作为输入参数

    结束语:Spcok测试框架在数据驱动模式中能极大的提高测试脚本开发效率,如果对Spock测试框架有兴趣,去Git上下载 spock-example  里面demo很详细。

    相关文章

      网友评论

          本文标题:SpockFramework 测试框架介绍

          本文链接:https://www.haomeiwen.com/subject/pnwcfxtx.html