开发者社区> 问答> 正文

为什么要使用 Mock?

已解决

为什么要使用 Mock?

展开
收起
游客lmkkns5ck6auu 2022-10-26 18:10:21 533 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    1) Mock 可以用来解除外部服务依赖,从而保证了测试用例的独立性。 现在的互联网软件系统,通常采用了分布式部署的微服务,为了单元测试某一服务 而准备其它服务,存在极大的依耐性和不可行性。

    2) Mock 可以减少全链路测试数据准备,从而提高了编写测试用例的速度。 传统的集成测试,需要准备全链路的测试数据,可能某些环节并不是你所熟悉的。 最后,耗费了大量的时间和经历,并不一定得到你想要的结果。现在的单元测试, 只需要模拟上游的输入数据,并验证给下游的输出数据,编写测试用例并进行测试 的速度可以提高很多倍。

    3) Mock 可以模拟一些非正常的流程,从而保证了测试用例的代码覆盖率。 根据单元测试的 BCDE 原则,需要进行边界值测试(Border)和强制错误信息输入 (Error),这样有助于覆盖整个代码逻辑。在实际系统中,很难去构造这些边界值, 也能难去触发这些错误信息。而 Mock 从根本上解决了这个问题:想要什么样的边 界值,只需要进行 Mock;想要什么样的错误信息,也只需要进行 Mock。

    4) Mock 可以不用加载项目环境配置,从而保证了测试用例的执行速度。 在进行集成测试时,我们需要加载项目的所有环境配置,启动项目依赖的所有服务 接口。往往执行一个测试用例,需要几分钟乃至几十分钟。采用 Mock 实现的测试 用例,不用加载项目环境配置,也不依赖其它服务接口,执行速度往往在几秒之内, 大大地提高了单元测试的执行速度。

    以上内容摘自《Java工程师必读手册》电子书,点击https://developer.aliyun.com/ebook/download/7780 可下载完整版

    2022-10-26 20:25:23
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载