mock是什么?怎么用?
更新:HHH   时间:2023-1-7


什么是mock?

mock就是在开发过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试开发的方法。

mock测试

就是在测试过程中,对于某些不容易构造或者 不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。

mock对象

这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。

mock对象使用范畴

真实对象具有不可确定的行为,产生不可预测的效果,(如:股票行情,天气预报) 真实对象很难被创建的 真实对象的某些行为很难被触发 真实对象实际上还不存在的(和其他开发小组或者和新的硬件打交道)等等.

使用mock对象测试的关键步骤

使用一个接口来描述这个对象 在产品代码中实现这个接口 在测试代码中实现这个接口 在被测试代码中只是通过接口来引用对象,所以它不知道这个引用的对象是真实对象还是mock对象。

MockObject

使用Mock Object进行测试,主要是用来模拟那些在应用中不容易构造(如HttpServletRequest必须在Servlet容器中才能构造出来)或者比较复杂的对象(如JDBC中的ResultSet对象)从而使测试顺利进行的工具。

目前,在Java阵营中主要的Mock测试工具有JMock,MockCreator,Mockrunner,EasyMock,MockMaker等,在微软的.Net阵营中主要是Nmock,.NetMock等。

使用mock有什么好处?

1.团队可以更好地并发工作

并发?没错,技术人员就应该用并发这个词。使用mock,各团队之间可以不需要再互相等待对方的进度,只需要约定好相互之间的数据规范(文档),即可使用mock构建一个可用的接口,可以更快的进行开发和调试以及自测,提升开发进度的同时,也将发现缺陷的时间点大大提前。

2.开启TDD(Test-Driven Development)模式,传说中的测试驱动开发

单元测试是TDD的常规操作,试想一下,当你测试过程中,某些协同模块没有完成,如何进行测试?这时mock就能很好的帮助你解决这个问题。当接口定义好后,测试人员就可以创建一个mock,把接口添加到自动化测试环境,提前创建测试。

3.测试覆盖率

比如一个接口在各种不同的状态下要返回不同的值,我们的传统的做法是复现这种状态然后再去请求接口,这是非常不科学的做法,而且这种复现方法很大可能性因为操作的时机或者操作方式不当导致失败,甚至污染之前数据库中的数据。如果我们使用mock,就完全不用担心这些问题。

4.方便演示

通过使用mock模拟数据接口,我们即可在只开发了UI的情况下,无须服务端的开发就可以进行产品的演示。

5.隔离系统

在使用某些接口的时候,为了避免系统中数据库被污染,我们可以将这些接口调整为mock的模式,以此保证数据库的干净。

如何使用mock?

mock有很多的在线平台,基本上都要注册,并且不稳定。所以longyoung我就萌发了一个想法,能不能本地搭一个mock,方便快捷。即使没网也可以工作,是不是很爽?在上网找了一圈,发现没有比较简单的方法,后来通过努力,终于实现了。方法很简单,因此不是特别智能,后期可以想办法升级下方法。废话少说,直接上步骤:

1.安装Node.js,请自行搜索安装。

2.随便到一个目录下创建一个文件存放json数据,如:test.json。

3.cd命令切换到文件目录(如:D:\gittest\test),执行命令:http-server -p 5050。-p是指定端口的意思,访问的时候记得加端口号。

返回移动开发教程...