Mock 用来干什么的?
首先我们知道 单元测试需要测试对象高度内聚,而我们在开发中无法避免需要用到其他对象,这些对象可能又引用到另一些对象,这样测试起来极其困难。
Mock 可以将这些依赖的对象虚拟化,我们不必创建一个真是的对象就可以进行调用测试,实现了封闭测试。
引入方式:
举个例子来说明吧
我们实现一个简单的 mvp 架构 ,实现的功能是 添加数据和删除数据
主要对 presenter 来进行测试
可以看到 我们要想测试 presenter 是否正常运行,需要两个依赖,一个是 数据的实体操作 repository 和 结果返回的接收实体 view
好我们创建 测试类
我们以 add 方法为例编写测试
我们在声明部分先声明需要依赖的对象,并初始化。
对应测试用例编写测试方法
执行测试对象的相应方法,检测预期对象的方法是否调用
引用的依赖对象采用同样的方法进行单元测试,保证功能调用的正常