什么是Mock
在面向对象的程序设计中,模拟对象(mock object)是以可控的方式模拟真实对象行为的假对象。在编程过程中,通常通过模拟一些输入数据,来验证程序是否达到预期结果。
为什么使用Mock对象
使用模拟对象,可以模拟复杂的、真实的对象行为。如果在单元测试中无法使用真实对象,可以使用模拟对象进行替代。
在以下情况下可以采用模拟对象来代替真实对象:
- 真实对象的行为是不确定的
- 真实对象很难搭建起来
- 真实对象的行为很难触发
- 真实对象速度很慢
- 真实对象是用户对象,或者包括用户界面在内
- 真实对象使用了回调机制
- 真实对象可能还不存在
- 真实对象可能包含不能用作测试的信息和方法
使用Mockito一般分为三个步骤:
- 模拟测试类所需的外部依赖
- 执行测试代码
- 判断执行结果是否到达预期