Mockito和PowerMock用法

Mockito和PowerMock用法,第1张

​ PowerMock是Java开发中的一种Mock框架,用于 单元模块测试 。当你想要测试一个service接口,但service需要经过防火墙访问,防火墙不能为你打开或者你需要认证才能访问。遇到这样情况时,你可以在你能访问的地方使用MockService替代,模拟实现获取数据。

​ PowerMock可以实现完成对 private/static/fina l方法的Mock(模拟),而Mockito可以对普通的方法进行Mock,如:public等。

Demo演示

PowerMock基于Mockito开发,起语法规则与Mockito一致,主要区别在于使用方面,以实现完成对 private/static/fina l等方法(也支持mock的对象是在方法内部new出来的)的Mock(模拟)。具体事例如下:

1、添加依赖

Mockito是GitHub上用于Java使用最广泛的Mock框架

Mockito核心解决的问题:不管是测试驱动开发,还是系统架构本身,都会带来的依赖结构复杂问题;单元测试做软件中的最小可测试单元,只应依当前单元的配置。 所有较大的系统都会有依赖复杂的问题。 此类问题就需要Mock框架来解决

使用很简单一般分3部:

@MockBean,在SpringBoot中通过@MockBean注解,就可以快速装在一个Mock的Bean了。

此方式通过非常简单的方式解决了系统层级之间单测的依赖,可以用在数据层和业务层,也可以用在业务层之间的多项依赖等依赖上的问题

直接执行:

可以看到如果使用了SpringBoot,并且使用@MockBean可以快速解决依赖的问题。但是,Mock出的LiveReportMapper对象其实是个空壳,那么既然是mock就要知道如何通过mock的方式解决各种复杂逻辑

下面模拟2种复杂逻辑,Service层的单元测试mock依赖的另外一个Service类"InfoService" ,并且mock里面的2个方法

下面看例子:

如果没有SpringBoot环境的Starter,可以直接使用Mockito。 除了@MockBean不能使用其他功能不受影响,参考上面例子

更多用法参考Mockito官方文档,此处不做赘述

官网地址: https://site.mockito.org/


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7873451.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存