测试同学们平时用的比较多的测试框架和工具,如JMockit、EasyMock、Mockito和PowerMock,大家普遍认为代码可读性差,多组测试数据使用起来麻烦等缺点,今天小编就来给大家介绍一款简洁、优雅、易理解的测试框架——Spock
首先给大家简单介绍下这款测试框架,Spock是一个基于Java和Groovy应用的测试框架,通过JUnit runner调用测试,兼容绝大部分JUnit的运行场景(IDE,构建工具,持续集成等),Spock框架使用标签分隔单元测试中不同的代码,更加规范,也符合实际写单元测试的思路,它的底层基于JUnit,不需要额外的运行框架,由于使用Groovy语言,所以也可以享受到脚本语言带来的便利。
我们中间普及下Groovy语言,如果你会使用Java语法,就可以直接使用Groovy语言了,Groovy是用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用Groovy语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。(注:不是指Groovy替代Java,而是指Groovy和fava很好的结合编程。)下面我们总结下Groovy语言的特点:
下面我们开始Spock的实践:
一.环境搭建
IDEA > Eclipse
Gradle > Maven (官网中有详细的Gradle配置说明https://gradle.org/)
IDEA+Maven(Maven在构建中还是处于领导地位)
Eclipse+Groovy-eclipse插件和附加包(安装时选择Groovy2.4版以上的comliper,地址https://github.com/groovy/groovy-eclipse/wiki)
二.写一个DEMO
1.创建空白项目spock_demo,选择maven工程
2.在pom中添加依赖
3.创建groovy的测试源码目录:首先在test目录下创建名为groovy的目录,之后将它设为测试源码目录
4.创建一个简单的类
5.我们的目录结构
6.编写测试代码,这里我们验证一下sum返回的结果是否正确
7.结果如下
三.Spock中的许多概念和特征都来自jUnit,我们总结看下Spock测试模板方法的定义和JUnit的对比,后续我们会对各个模板方法进行介绍和测试实践,请大家持续关注搜狗测试公众号。