使用强大的 Mockito 来测试你的代码

本文详细介绍了如何使用Mockito框架进行单元测试,包括Mockito的安装、使用方法、配置mock对象、验证方法调用等。Mockito是一个流行的Java单元测试框架,它允许开发者创建和配置mock对象,以隔离测试代码中的外部依赖。通过Mockito,可以更方便地测试代码行为,确保测试的准确性。
摘要由CSDN通过智能技术生成
北京 | 高性能计算之GPU CUDA课程11月24-26日 3天密集学习 快速带你晋级 阅读全文 >


作者,曾梓华,稳步前进的机器学习工程师。


原文链接 : Unit tests with Mockito - Tutorial(http://www.vogella.com/tutorials/Mockito/article.html)

原文作者 : vogella

译者 : edvardhua

校对者: hackerkevin, futureshine


这篇教程介绍了如何使用 Mockito 框架来给软件写测试用例。


1、预备知识


如果需要往下学习,你需要先理解 Junit 框架中的单元测试。


如果你不熟悉 JUnit,请查看下面的教程:
http://www.vogella.com/tutorials/JUnit/article.html


2、使用mock对象来进行测试


2.1 单元测试的目标和挑战


单元测试的思路是在不涉及依赖关系的情况下测试代码(隔离性),所以测试代码与其他类或者系统的关系应该尽量被消除。一个可行的消除方法是替换掉依赖类(测试替换),也就是说我们可以使用替身来替换掉真正的依赖对象。


2.2 测试类的分类


dummy object 做为参数传递给方法但是绝对不会被使用。譬如说,这种测试类内部的方法不会被调用,或者是用来填充某个方法的参数。


Fake 是真正接口或抽象类的实现体,但给对象内部实现很简单。譬如说,它存在内存中而不是真正的数据库中。(译者注:Fake 实现了真正的逻辑,但它的存在只是为了测试,而不适合于用在产品中。)


stub 类是依赖类的部分方法实现,而这些方法在你测试类和接口的时候会被用到,也就是说 stub 类在测试中会被实例化。stub 类会回应任何外部测试的调用。stub 类有时候还会记录调用的一些信息。


mock object 是指类或者接口的模拟实现,你可以自定义这个对象中某个方法的输出结果。


测试替代技术能够在测试中模拟测试类以外对象。因此你可以验证测试类是否响应正常。譬如说,你可以验证在 Mock 对象的某一个方法是否被调用。这可以确保隔离了外部依赖的干扰只测试测试类。


我们选择 Mock 对象的原因是因为 Mock 对象只需要少量代码的配置。


2.3 mock对象的产生


你可以手动创建一个 Mock 对象或者使用 Mock 框架来模拟这些类,Mock 框架允许你在运行时创建 Mock 对象并且定义它的行为。


一个典型的例子是把 Mock 对象模拟成数据的提供者。在正式的生产环境中它会被实现用来连接数据源。但是我们在测试的时候 Mock 对象将会模拟成数据提供者来确保我们的测试环境始终是相同的。


Mock 对象可以被提供来进行测试。因此,我们测试的类应该避免任何外部数据的强依赖。


通过 Mock 对象或者 Mock 框架,我们可以测试代码中期望的行为。譬如说,验证只有某个存在 Mock 对象的方法是否被调用了。


2.4 使用mockito生成mock对象


Mockito 是一个流行 mock 框架,可以和JUnit结合起来使用。Mockito 允许你创建和配置 mock 对象。使用Mockito可以明显的简化对外部依赖的测试类的开发。


一般使用 Mockito 需要执行下面三步


  • 模拟并替换测试代码中外部依赖。

  • 执行测试代码

  • 验证测试代码是否被正确的执行


mockitousagevisualization


3、为自己的项目添加mockito依赖


3.1 在Gradle添加mockito依赖


如果你的项目使用 Gradle 构建,将下面代码加入 Gradle 的构建文件中为自己项目添加 Mockito 依赖。


repositories { jcenter() } dependencies { testCompile "org.mockito:mockito-core:2.0.57-beta" }


3.2 在maven添加mockito依赖


需要在 Maven 声明依赖,您可以在 http://search.maven.org 网站中搜索 g:"org.mockito", a:"mockito-core" 来得到具体的声明方式。


3.3 在EclipseIDE使用mockito


Eclipse IDE 支持 Gradle 和 Maven 两种构建工具,所以在 Eclipse IDE 添加依赖取决你使用的是哪一个构建工具。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值