单元测试—— Mock 对象行为之 Mockito

本文介绍了在Spring单元测试中使用Mockito模拟对象行为的重要性。Mockito可以帮助测试Service层,隔离其对外部依赖,简化测试过程。通过示例展示了如何引入Mockito依赖,并创建Mock对象进行测试。
摘要由CSDN通过智能技术生成

系列文章

单元测试—— Spring 环境下测试之 SpringJUnit4ClassRunner

单元测试—— 强大的 PowerMock

单元测试—— Spring @Scheduled

前言

       本章要介绍的工具时 Spring 的单元测试工具之一,Mockito,Mock对象的行为。

       满足单一职责原则的类,都有自己独立的功能与行为,而类与类之间又是相互关联的。就像社会中的人类,人是一个独立的单元,有各自的特征和行为,但人也不可能独立而存在。这种相互关联就是相互间的依赖,要剥离开这种依赖而对单独的一个类进行测试,就必须要有工具来模拟类的依赖,而 Mockito 就是这种工具。

       这里从基于 Spring MVC 的三层架构说起,大多数使用场景是将其分为 Controller层,Service层,DAO层,它们的职责独立而又相互依赖。首先看看它们各自的职责:

       1,Controller层,这一层通常是定义服务的接口,对业务模块流程的控制,它由Spring MVC框架提供支持;

       2,Service层,这一层通常会响应 Controller 的业务请求,并处理业务逻辑。在 Service 层的业务逻辑是比较多样的,包括业务的具体流程的设计,数据层的访问,也可能会访问中间件组件,例如缓存服务器Redis,消息服务RocketMQ,不仅如此,Service层还可能涉及到第三方服务的调用,例如调用支付宝或者微信的支付业务,百度或者高德的地图业务等等之类的接口。所以这层将作为 Unit Test 的重点。

       3,DAO层,Data Access Object,顾名思义,这一层就是用于对数据库的访问与存储的。在简单的设计种,甚至可以把它纳入Service层,但是极其不推荐。单独把它抽离出来是很有道理的,首先在多数据库的设计种,它可以对外部调用屏蔽内部的实现,然后是对驱动或者依赖的升级是很友好的。这一层通常在开发时就设计并测试好了的。

       确定了Spring MVC架构种各部分的职责,就把 Unit Test 的重点放 在Service 层来讲。

       Service层是业务逻辑处理最复杂的一部分,它对外部有很

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值