Spock注意事项:使用PowerMock对JDK系统类mock时不兼容问题

Spock注意事项:使用PowerMock对JDK系统类mock时不兼容问题

Spock系列 3年前 (2021-06-21) 浏览: 1682 评论: 0

如果你在Spock中使用powermock去mock掉jdk类的静态方法,可能会出现powermock不兼容的问题(感谢"有1024个人"这位朋友的反馈,原文见之前这篇文章的评论:https://javakk.com/281.html)。 比如有下面这个要测试的类,里面调用了java.util.Calendar获取当前的年份,其他代码会调用这个方法,我们可能需要对返回的年份进行mock来测试不同的

Spock注意事项补充一

Spock注意事项补充一

Spock系列 4年前 (2020-10-08) 浏览: 1195 评论: 0

Spock和Mockito注解混用问题 因为Spock并不支持Mockito和power mock的@InjectMocks和@Mock的组合,运行时会报错,如果你一定要使用对应的功能可以引入Mockitio为Spock专门开发的第三方工具:spock-subjects-collaborators-extension使用@Subject和@Collaborator代替@InjectMocks和@M

Spock如何模拟抽象类方法

Spock如何模拟抽象类方法

Spock系列 4年前 (2020-10-07) 浏览: 1646 评论: 0

我们平时写单元测试时经常会遇到调用抽象类或父类的方法,这些抽象方法可能是调用底层接口或数据库,需要mock掉,让抽象方法返回一个我们指定的值,以便测试当前代码逻辑的场景。 下面讲下Spock如何结合power mock实现动态mock抽象方法 一. 抽象方法或父类方法动态mock AbstractService 是个抽象类,我们需要把它的方法 parentMethod 模拟掉,返回我们预先设置的"

Spock代码讲解 – 基类封装

Spock代码讲解 – 基类封装

Spock系列 4年前 (2020-08-19) 浏览: 1463 评论: 0

这是Spock系列的第九篇文章,这一篇介绍在实际使用Spock的过程中如何把一些常用的测试方法抽出来,封装成基类使用 BaseSpock 在前面几篇文章讲解Spock结合power mock实现静态方法mock功能时,示例代码里经常会用到LogUtils等工具类的静态方法去记录日志,那我们就可以把LogUtils类的mock代码抽到一个公共类中,然后我们的测试类去继承我们自己实现的公共类 比如我们

Spock高级用法 – 动态mock

Spock高级用法 – 动态mock

Spock系列 4年前 (2020-08-18) 浏览: 4467 评论: 0

这是Spock系列的第八篇文章,上一篇介绍了Spock如何使用power mock测试静态方法,这篇讲解Spock自带的mock功能如何和power mock组合使用,发挥更强大的作用 动态mock静态方法 (spock where + power mock) 在上一篇的例子中使用power mock让静态方法返回一个指定的值,那能不能每次返回不同的值呢? 我们先看下什么场景需要这样做: /**

Spock代码讲解 – 静态方法测试

Spock代码讲解 – 静态方法测试

Spock系列 4年前 (2020-08-18) 浏览: 3931 评论: 2

这是Spock系列的第七篇文章,本篇主要讲解Spock如何扩展第三方power mock对静态方法进行测试 实现原理 前面的文章讲到Spock的单测代码是继承自Specification基类,而Specification又是基于Junit的注解@RunWith()实现的,代码如下: @RunWith(Sputnik.class) @SuppressWarnings("UnusedDeclarati

登录

忘记密码 ?

切换登录

注册