单元测试之mock使用

本文介绍了单元测试中使用mock的优势,包括提高测试效率、支持TDD、并行开发和解决环境依赖问题。详细讲解了mock的实现原理,通过引入Maven依赖包和编写测试代码,展示了如何进行mock单元测试。同时,还介绍了PowerMock的使用,用于模拟静态方法调用,以减少对环境的依赖。
摘要由CSDN通过智能技术生成

目录

一、简介

二、使用mock做单元测试的优点

1、效率高

2、TDD(测试驱动开发)

3、并行开发

4、解决环境依赖问题

三、mock实现原理

四、mock使用

1、导入Maven依赖包

2、编写测试代码

2.1、模块接口调用代码

2.2、模块业务处理代码

 2.3、mock单元测试代码

2.4、mock的其它用法

3、PowerMock使用 

3.1、增加工具测试类

3.2、Mock测试类调整


一、简介

 一般程序中A类的m1方法调用B类的m2方法,而B类的m2方法又调用了C类的m3方法以此类推等等,而其中的某个方法的一些数据又需要调用其它服务或者查询数据库,一般单元测试只针对某个功能进行测试,但是如上面的情况在做单元测试时受程序结构、环境等条件限制就会变得非常复杂。mock可以模拟对象返回方式来解决与该单元功能不相关的依赖关系,即模拟B类的m2方法返回结果来进行A类的m1方法单元测试,排除受到B类C类等其它不相关因素的影响。

二、使用mock做单元测试的优点

1、效率高

就是跑Java代码,不需要启用Spring及连接数据库。

2、TDD(测试驱动开发)

即先编写单元测试用例,根据单元测试用例再编写程序代码。

3、并行开发

团队有多个开发人员时在把数据格式约定好后可使用mock模拟返回结果而不需等待功能开发完成后才能联调。

4、解决环境依赖问题

比如当网络不通、服务无法访问时也能进行单元测试。

三、mock实现原理

使用Stub(桩)技术动态的替换原程序功能。即在程序运行时将原本程序要调用class字节码的逻辑替换为mock代码。

四、mock使用

1、导入Maven依赖包

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>2.8.9</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-module-junit4</artifactId>
    <version>1.7.4</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-
  • 8
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不甘于平凡的溃败

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值