关于 Spock

概念

Spock 是一个适用于 Java(Groovy) 的一个优雅并且全面的测试框架。因为基于 Groovy, 使得 Spock 可以更容易地写出表达能力更强的测试用例。又因为它内置 了 Junit Runner, 所以 Spock 兼容大部分的 IDE,测试工具,和持续集成服务器。

Spock 特性

内置支持 mocking stubbing,可以很容易地模拟复杂的类的行为
Spock 实现了 BDD 范式(behavior-driven development)
与现有的 Build 工具集成,可以用来测试后端代码,Web 页面等等
兼容性强,内置 Junit Runner, 可以像运行 Junit 那样运行 Spock,甚至可以在同一个项 目里面同时使用两种测试框架
取长补短,吸收了现有框架的优点,并加以改进
Spock 代码风格简短,易读,表达性强,扩展性强,还有更清晰显示 bug

基本构造块

  • where: 以表格的形式提供测试数据集合
  • when: 触发行为,比如调用指定方法或函数
  • then: 做出断言表达式
  • expect: 期望的行为,when-then的精简版
  • given: mock单测中指定mock数据
  • thrown: 如果在when方法中抛出了异常,则在这个子句中会捕获到异常并返回
  • def setup() {} :每个测试运行前的启动方法
  • def cleanup() {} : 每个测试运行后的清理方法
  • def setupSpec() {} : 第一个测试运行前的启动方法
  • def cleanupSpec() {} : 最后一个测试运行后的清理方法

关于DBUnit

DBunit 是一种扩展于JUnit的数据库驱动测试框架,它使数据库在测试过程之间处于一种已知状态,如果一个测试用例对数据库造成了破坏性影响,它可以帮助避免造成后面的测试失败或者给出错误结果。
spock单元测试使用方式
首先在项目的 pom.xml 中引入Maven依赖,依赖如下

相关文献

Spock官方文档 http://spockframework.org/
Spock代码实例 https://github.com/spockframework/spock-example

《spock-一个优雅的groovy-java测试框架》 https://samrayleung.github.io/blog/2017/04/11/spock-%E4%B8%80%E4%B8%AA%E4%BC%98%E9%9B%85%E7%9A%84groovy-java%E6%B5%8B%E8%AF%95%E6%A1%86%E6%9E%B6/

spock-dbunit源码 https://github.com/janbols/spock-dbunit
《Spring + DbUnit 测试》Spring + DbUnit 测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值