首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spock测试框架实践

测试同学们平时用的比较多的测试框架和工具,如JMockit、EasyMock、Mockito和PowerMock,大家普遍认为代码可读性差,多组测试数据使用起来麻烦等缺点,今天小编就来给大家介绍一款简洁...、优雅、易理解的测试框架——Spock 首先给大家简单介绍下这款测试框架,Spock是一个基于Java和Groovy应用的测试框架,通过JUnit runner调用测试,兼容绝大部分JUnit的运行场景...(IDE,构建工具,持续集成等),Spock框架使用标签分隔单元测试中不同的代码,更加规范,也符合实际写单元测试的思路,它的底层基于JUnit,不需要额外的运行框架,由于使用Groovy语言,所以也可以享受到脚本语言带来的便利...Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,...三.Spock中的许多概念和特征都来自jUnit,我们总结看下Spock测试模板方法的定义和JUnit的对比,后续我们会对各个模板方法进行介绍和测试实践,请大家持续关注搜狗测试公众号。 ?

1.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

Spock测试框架实践(三)

在上一次Spock实践中我们介绍了Spock的基本概念,今天我们继续介Spock的数据驱动和一些技巧。...一、首先介绍下spock中的数据驱动: Spock框架支持多种数据驱动方式 1.数据表,强于可读性,适合数据量小的场景 2.数据管道,强于可维护性,适合数据量多的场景 步骤:...在实际测试工作中,往往测试数量较大,此时最佳实践方式是从数据库读取数据作为驱动数据,例如: ?...二、技巧 1.对象构建技巧 在测试过程中,需要构建测试数据对象,对于比较复杂属性的对象构造,用java往往比较繁琐笨重,需要不断调用setter方法设置属性值,但是groovy语法可以基于map的构造器构造对象...通过groovy的object.with结构可以分组对象参数,例如 def "冒烟测试"() { given:"discount coupon param" def stairList

1.1K10

Spock测试框架实践(六)

在上一次Spock实践中我们介绍了Spock的文档化测试和HTTP接口测试实践,今天我们用Spock做一些mock的实践。...各类mock框架让这类验证变得可行,而spock除了支持这类验证,并且做的更加优雅,下面我们看一下在Spock里mock的应用实践。...如果要每次调用返回不同结果,可以使用: subscriber.receive(_) >>> [ "ok" , "error" , "error" , "ok" ] 如果要做额外的操作,如抛出异常,可以使用...四、其它类型的mock对象 Spock也支持spy、stub之类的mock对象,但是并不推荐使用,因为使用“正规的”BDD思路写出的代码不需要用这些方法来测试,官方的解释是: Think twice...(在使用此功能之前请三思。在规范下更改代码的设计可能会更好。) 具体的使用方法如果有兴趣可以参考官方文档.

1.7K20

Spock单元测试框架使用详解「建议收藏」

Spock(Spock官网:http://spockframework.org/)作为java和Groovy测试一种表达的规范语言,其参考了Junit、Groovy、jMock、Scala等众多语言的优点...Spock单元测试相对于传统的junit、JMockito、EsayMock、Mockito、PowerMock,由于使用了Groovy作为语法规则,代码量少,容易上手,提高了单元测试开发的效率,因此号称是下一代单元测试框架...本文以实战的方式详解怎样使用Spock进行单元测试,以便更好地理解Spock单元测试,至少能够让读者能够在选择java单元测试面前多了一种选择。 1....和Junit类似也将单元测试划分成了多个阶段 * 如 setup() 类似于Junit的@Before,在这个方法中的代码块会在测试用例执行之前执行,一般用于初始化程序以及Mock定义...使用Spock框架进行单元测试; 2. Spock官网.

2.2K20

spock测试桩mock和stub的区别及使用场景

使用spock进行单元测试时,有如下情景,分别可使用stub和mock。 使用stub测试桩 如果我们需要测试A方法,但是E方法目前还没办法调用,或者还没开发完成。...以上是spock中stub测试桩的使用场景,总结为一句就是: stub测试桩给被调用者( 方法/模块)制造假的返回值,以便不影响调用者的测试。...使用mock测试桩 mock测试桩就是模拟一个测试的结果。如下图,A类调用类B和C类的某个方法: ?...如果要测试A的方法,但是我们没办法调用B来检测结果,就可以使用mock测试桩,生成一个B的mock对象。检验结果时,可以使用B的mock对象替代B。...-2.html 以上是spock中mock测试桩的使用场景,总结为一句就是: mock测试桩给被测试方法模拟一个预期的效果。

3.9K50

单元测试框架spock和Mockito应用

先介绍一下两位主角 spock是一款基于Groovy语言的单元测试框架,其基础也是Java的Junit,目前最新版已经到了2.0,但对Groovy和响应的Java版本要求较高,具体信息参考:Spock...Mockito是一个模拟测试框架,可以让你用优雅,简洁的接口写出漂亮的单元测试。Mockito可以让单元测试易于可读,产生简洁的校验错误。TDD测试驱动开发要求我们先写单元测试,再写实现代码。...testCompile 'org.mockito:mockito-core:2.7.22' testCompile group: 'org.spockframework', name: 'spock-core...,Mockito的基础功能在spock应用还是非常流畅的,但是一些高级语法还是无法使用,如果在实际项目中使用请多调研两者差别,大概率还是要混合编程。...参考文章: Maven和Gradle中配置单元测试框架Spock Groovy单元测试框架spock基础功能Demo Groovy单元测试框架spock数据驱动Demo ---- 郑重声明:“FunTester

2.2K50

Groovy单元测试框架spock基础功能Demo

spock是一款全能型的单元测试框架。 最近在做单元测试框架的调研和尝试,目前确定的方案框架包括是:spock,Junit,Mockito以及powermock。...由于本身使用Groovy的原因,比较钟情于spock框架,但是奈何兼容性比较差,特别是跟Mockito等框架的高级语法的兼容。...不过这不妨碍spock是一个非常优秀的单元测试框架,特别体现在用例的形式和测试报告的展示方式以及报错信息的展示(这个我最中意)。 在简单看过官方文档之后做了一些简单的Demo,分享给大家。...(官方文档貌似有段时间没有更新了,如果用的话建议升级最新版) package com.FunTester.spock.pratice import org.slf4j.Loggerimport spock.lang.Sharedimport...的测试报告: ?

82110

在Spring Boot项目中使用Spock框架

Spock框架是基于Groovy语言的测试框架,Groovy与Java具备良好的互操作性,因此可以在Spring Boot项目中使用该框架写优雅、高效以及DSL化的测试用例。...Spock通过@RunWith注解与JUnit框架协同使用,另外,Spock也可以和Mockito(Spring Boot应用的测试——Mockito)协同使用。...在这个小节中我们会利用Spock、Mockito一起编写一些测试用例(包括对Controller的测试和对Repository的测试),感受下Spock使用。...,测试通过 接下来试验下Spock如何与mock对象一起工作,之前的文章中我们已经在TestMockBeansConfig类中定义了PublisherRepository的Spring Bean,如下所示...Spock也提供了setup()和cleanup()方法,执行一些给所有测试用例使用的准备和清除动作,例如在这个例子中我们使用setup方法:(1)mock出web运行环境,可以接受http请求;(2)

2K10

Spock单元测试框架以及在美团优选的实践

使用Spock解决单元测试开发中的痛点 4. Mock模拟 5. 异常测试 6. Spock静态方法测试 7. 动态Mock静态方法 8. 覆盖率 9. DAO层测试 作者简介 1....我们可以来看接下来的场景:void方法,没有返回结果,如何测试这段代码的逻辑是否正确? 如何确保单元测试代码是否执行到了for循环里面的语句,循环里面的打折计算又是否正确呢?...接下来我们看下Spock如何解决的。...Spock静态方法测试 接下来,我们一起看下Spock如何扩展第三方PowerMock对静态方法进行测试。...即Spock使用where表格的方式让PowerMock具有了动态Mock的功能。接下来,我们再看一下如何对于final变量进行Mock。

3.1K20

Spock单元测试框架以及在美团优选的实践

使用Spock解决单元测试开发中的痛点 4. Mock模拟 5. 异常测试 6. Spock静态方法测试 7. 动态Mock静态方法 8. 覆盖率 9. DAO层测试 作者简介 1....我们可以来看接下来的场景:void方法,没有返回结果,如何测试这段代码的逻辑是否正确? 如何确保单元测试代码是否执行到了for循环里面的语句,循环里面的打折计算又是否正确呢?...接下来我们看下Spock如何解决的。...Spock静态方法测试 接下来,我们一起看下Spock如何扩展第三方PowerMock对静态方法进行测试。...即Spock使用where表格的方式让PowerMock具有了动态Mock的功能。接下来,我们再看一下如何对于final变量进行Mock。

2.7K20
领券