基于gradle的Groovy之Spock测试框架入门二
在中我们介绍了Spock测试框架环境的搭建及最简单的用例。接下来这篇,我们介绍基于Spock怎么写自动化用例。
需要了解的是Spock也是一个基于BDD方式的测试框架。
Spock测试套件包括的关键字/函数有以下,后续再详细介绍
关键函数 setupSpec() ---只跑一次 setup() ---每个测试前跑一次 cleanup() ---每个用例结束后跑一次 cleanupSpec() --结束后跑一次 关键字 given
and when then expect cleanup where 不用解释,看字面意思应该好理解
那我们来看看give when then 的写法。编写如下的代码加在原来的文件中
def "check case-insensitive equality of 2 strings"() { given: String str1 = "hello" String str2 = "HELLO" when: str1 = str1.toLowerCase() str2 = str2.toLowerCase() then: str1 == str2 } def "check addition of 2 numbers"() { given: int input1 = 10 int input2 = 25 when: int result = input1 + input2 then: result == 35 }
很简单的2段代码。跑完后结果如下:
需要注意的地方:
1. 如果你使用BDD模式的话,when 和then必须成对出现
比如不写when,直接写then会提示如下错误(但只写when是可以的)
2. 有时候我们在given中就想做断言,可以使用expect来进行。
比如下面这段用例
def 'expect case' (){ given: int inpu1 = 20 expect: inpu1 == 30 when: int result = inpu1 + 3 then: result ==15 }
执行后,就是因为条件不满足就中止测试