您的位置:首页 > 编程语言 > Java开发

Java Mocking入门—使用Mockito

2016-04-12 11:40 351 查看

Java Mocking入门—使用Mockito

2014/03/10 | 分类: 基础技术 | 0 条评论 | 标签: 单元测试

分享到:8

本文由 ImportNew - liken 翻译自 dzone。欢迎加入翻译小组。转载请见文末要求。
我们都会编写单元测试程序,但我们当前所面临的挑战是被测单元可能依赖于其他组件。而对于单元测试配置其他组件,绝对是过枉矫正。相反,我们可以使用Mocks框架代替其他组件,继续进行单元测试。

为了展现如何使用mock框架,我编写一个数据访问层(DAL),该类对应用提供了一套API 接口来访问和修改数据库中的数据。之后在不需要连接数据库的情况下,对DAL类进行单元测试。数据库可以是本地数据库、远程数据库、文件系统或者任何可以储存和检索数据的地方。使用DAL类帮助我们 将数据映射操作从应用代码中分离出来。

使用maven建立一个Java工程。

以上操作建立了一个MockitoDemo文件夹,然后创建源文件和测试文件的整个目录结构。

考虑下面这个示例模型类:

操作Book模型类的DAL类:

当前DAL层以上没有任何功能,我们将对这段代码TDD进行单元测试。DAL层可能与ORM映射API或者数据库API通讯,而我们不关心的这些API是如何设计的。

测试驱动DAL层

对单元测试和Java Mock有很多框架,对这个例子,我将选择JUnit做单元测试,Mockito作为Java mock。我们会在Maven的pom.xml文件中更新依赖属性。

现在进行BookDAL类的单元测试。单元测试中,我们将注入mock数据到BookDAL类,因此我们可以不依赖数据源就可以完成API的测试。

最初我们有一个空的测试类:

我们将使用下面的setUp()函数把BookDAL类注入mock对象,并设置mock对象数据:

在上面的
setUp()方法中,我做了
:

1. 创建一个BookDAL的mock对象

2. 存根带mock数据的BookDAL对象的API,这样无论何时调用API都可以返回mock数据。

填充剩余的测试方法:

使用maven命令: mvn test进行测试。输出如下:

至此,通过使用mock框架,在不用实际配置数据源的情况下,就可以测试DAL类。

原文链接: dzone 翻译: ImportNew.com - liken
译文链接: http://www.importnew.com/10083.html
[ 转载请保留原文出处、译者和译文链接。]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: