1、什么是Mock ?
In object-oriented programming,mock objects are simulated objects that mimic the behavior. of real objects in controlled ways. A computer programmer typically creates a mock object to test the behavior. of some other object, in much the same way that a car designer uses a crash test dummy to simulate the dynamic behavior. of a human in vehicle impacts. ---From Wikepedia
用一句通俗的语言来说: Mock就是一种可以模拟系统中依赖其他第三方接口的一种技术。
2、为什么要做Mock ?
2.1 环境不稳定
使用Mock, 相当于在开发、测试过程中降级了对外部接口的依赖。
2.2 数据准备难
在某些测试过程中,需要第三方接口返回特定的数据以符合特定的测试场景,这种情况往往需要跨条线的沟通协调测试数据,成本高,效率低。利用Mock可以自定义返回测试结果,支持手动构造依赖接口的返回值。
2.3 大规模自动化的先决条件
在自动化测试规模逐渐增大到一定程度,测试的接口多,测试用例也曾都增多,依赖的环境的稳定就成为了自动化测试用例稳定的关键所在,往往会因为依赖的第三方环境不稳定导致测试执行大规模失败,导致对自动化的稳定运行失去信心,最终导致自动化测试难以维护,不了了之。利用Mock技术,在测试过程中,只关注被测业务逻辑,忽略不相关的系统,自动化测试运行失败,就一定是被测系统本身的业务逻辑问题,而不是其他第三方系统、数据的问题。
3、Mock的优缺点分析
3.1 Mock的好处
3.2 Mock 使用可能存在的风险