Mock数据

    1.  团队能够并行工做数据库

      有了Mock,先后端人员只须要定义好接口文档就能够开始并行工做,互不影响,只在最后的联调阶段往来密切;后端与后端之间若是有接口耦合,也一样能被Mock解决;测试过程当中若是遇到依赖接口没有准备好,一样能够借助Mock;不会出现一个团队等待另外一个团队的状况。这样的话,开发自测阶段就能够及早开展,从而发现缺陷的时机也提早了,有利于整个产品质量以及进度的保证。后端

      2. 开启TDD模式,即测试驱动开发网络

      单元测试是TDD实现的基石,而TDD常常会碰到协同模块还没有开发完成的状况,可是有了mock,这些一切都不是问题。当接口定义好后,测试人员就能够建立一个Mock,把接口添加到自动化测试环境,提早建立测试。app

      3. 能够模拟那些没法访问的资源框架

      好比说,你须要调用一个“墙”外的资源来方便本身调试,就能够本身Mock一个。post

      4. 隔离系统单元测试

      假如咱们须要调用一个post请求,为了得到某个响应,来看当前系统是否能正确处理返回的“响应”,可是这个post请求会形成数据库中数据的污染,那么就能够充分利用Mock,构造一个虚拟的post请求,咱们给他指定返回就行了。测试

      5. 能够用来演示spa

      假如咱们须要建立一个演示程序,而且作了简单的UI,那么在彻底没有开发后端服务的状况下,也能够进行演示。说到演示了,假如你已经作好了一个系统,而且须要给客户进行演示,可是里面有些真实数据并不想让用户看到,那么一样,你能够用Mock接口把这些敏感信息接口所有替换。调试

      6. 测试覆盖度

      假若有一个接口,有100个不一样类型的返回,咱们须要测试它在不一样返回下,系统是否可以正常响应,可是有些返回在正常状况下基本不会发生,难道你要想方设法地给系统作各类手脚让他返回以便测试吗?好比,咱们须要测试在当接口发生500错误的时候,app是否崩溃,别告诉我你必定要给服务端代码作些手脚让他返回500 。。。而使用mock,这一切就都好办了,想要什么返回就模拟什么返回。
       7.一些比较难构造的Object:这类Object一般有不少依赖,在单元测试中构造出这样类一般花费的成本太大。

    2. 根据需求选择恰当的mock点

        对于Mock这里存在两个误区,1.是Mock的对象越多越好;2.Mock会引入巨大的工做量,一般得不偿失。这都是源于不恰当的Mock点的选取。

      这里说的如何选择恰当的mock点,是说对于一个被测对象,咱们应当在外围选择恰当的mock对象,以及须要mock的接口。由于对于任意一个对象,任意一段代码逻辑咱们都是有办法进行Mock的,而Mock点选择直接决定了咱们Mock的工做量以及测试效果。从另一种意义上来讲,不恰当Mock选择反而会对咱们的测试产生误导,从而在后期的集成和系统测试中引入更多的问题。

      在mock点的选择过程当中,如下的一些点会是一些不错的选择

       

      • 网络交互:若是两个被测模块之间是经过网络进行交互的,那么对于网络交互进行Mock一般是比较合适的,如RPC
      • 外部资源:好比文件系统、数据源,若是被测对象对此类外部资源依赖性很是强,而其行为的不可预测性极可能致使测试的随机失败,此类的外部资源也适合进行Mock
      • UI:由于UI不少时候都是用户行为触发事件,系统自己只是对这些触发事件进行相应,对这类UIMock,每每可以实现很好的收益,不少基于关键字驱动的框架都是基于UI进行Mock
      • 第三方API:当接口属于使用者,经过Mock该接口来肯定测试使用者与接口的交互。
      • 固然如何作Mock必定是与被系统的特性精密关联的,一些强制性的约束和规范是不合适的。这里介绍几个作的比较好的mock的例子。
相关文章
相关标签/搜索