当前位置: 首页 > news >正文

网站栏目策划建设部网站工程设计收费标准

网站栏目策划,建设部网站工程设计收费标准,网站建设前分析,Sensei wordpress插件文章目录 前言单元测试没必要?Mock不Mock?什么是Mock?Mock的意义何在? 如何Mock#xff1f;应该Mock什么#xff1f;Mock 编写示例 总结 前言 前段时间#xff0c;我们团队就单元测试是否采用 Mock 进行了一番交流#xff0c;各有各的说法。本文就单元测试 Mock不Mock… 文章目录 前言单元测试没必要?Mock不Mock?什么是Mock?Mock的意义何在? 如何Mock应该Mock什么Mock 编写示例 总结 前言 前段时间我们团队就单元测试是否采用 Mock 进行了一番交流各有各的说法。本文就单元测试 Mock不Mock 给出我的观点欢迎各位同仁提出不同的意见共同探讨、相互交流。 单元测试没必要? 我见过好多不写单元测试的项目大多给出的原因都是“没必要”、“浪费时间”、“get不到单测的作用”这样的项目要么是小规模要么就是头铁。 本人之前也有相同的观点… 单元测试在软件开发过程中还是非常重要的除了可以提高代码的质量在引入CI/CD后的自动化测试环节可以起到快速部署、交付作用。难道每次上线都需要“点点点”测试这一点我想经历过的人都深有体会。 Mock不Mock? 那什么是Mock 什么是Mock? 简单来说Mock就是模拟目标代码的行为在实际测试过程中代替真实的调用目标。如下图 这样做的意义何在 Mock的意义何在? 试想一下单元测试中如果出现以下几个问题应该怎么办 涉及到的DB操作、网络调用等单元测试产生的数据属不属于垃圾数据会不会影响业务发布/部署生产环境的过程中错误地执行了单元测试引起生产问题怎么办CI过程中的测试环节花费时间太长怎么办会不会影响集成交付 以上几个问题我想大部分开发人员都经历过那如何避免这些问题我想Mock就是最好的一种方式。 如果将涉及到的外部操作例如DB操作、网络调用等行为进行Mock那就不会存在垃圾数据的问题也不用担心环境切换带来的问题外部耗时的操作也可以通过Mock避免CI过程过长。 个人认为Mock只是模拟调用外部的行为并不影响代码逻辑。所以不存在“Mock是不是有效的单元测试”这种说法。 如何Mock 应该Mock什么 通常我们编写的方法(或函数)都是由很多方法按照层级组成的就像这样 当我们对顶层方法进行单元测试时应该Mock哪些方法 如果Mock方法1、2、3那么方法4、5、6就不会被调用到里面的逻辑不会被覆盖到也就不是有效的单元测试。如果Mock方法4、5、6里面的逻辑或返回值有修改那么就要递归向上修改不符合软件工程。 但是如果方法43、、5、6都涉及到DB或者网络调用等外部不可控操作我们就应该对其Mock。 所以应该Mock一些稳定的、不可控的方法。 Mock 编写示例 以Python中的Mock框架为例下面是一个示例 class TestXxService(unittest.TestCase):def test_init(self):XXService.update(xx)class XXService:def update(xx):......test_init函数中的....update会涉及到数据库的操作这里使用patch模拟这两个函数的行为 # patch(目标函数路径) patch(....update)在模拟的上下文中XXService.update将会被模拟的函数替代执行 def test_init(self):with patch(....update) as mocked_update:# 在模拟的上下文中调用业务逻辑函数XXService.update(xx)mocked_update.assert_called_once_with(xx)其中assert_called_once_with 会验证模拟函数是否被调用了一次并且会验证预期接收的参数是否匹配。 如果没有参数使用assert_called_once进行验证是否被调用了一次。 如果模拟的函数实际被调用了多次需要通过以下方式 # 断言mocked_update被调用了2次 self.assertEqual(mocked_update.call_count, 2) # 断言mocked_update被调用了并且参数正确 mocked_update.assert_any_call(xx)如果函数有返回值在定义模拟函数时添加 return_valuereturn_value可以是任意类型。 patch(...update,return_valuexxx) as mocked_update在验证返回值时通过下面的方式 xxxx mocked_update.return_value self.assertEqual(xxxx, xxx)通过示例我们Mock了XXService.update行为实现了对XXService的隔离测试并确保了测试的可靠性和高效性。 总结 单元测试中使用Mock有以下几个好处 隔离测试Mock 使得测试可以专注于测试的代码逻辑而不必关心外部不稳定因素。提高测试速度Mock 可以避免耗时的外部调用从而加快测试速度。提高测试的可靠性和稳定性通过Mock可以避免外部变化对测试结果的影响。
http://www.lakalapos1.cn/news/30754/

相关文章:

  • 佟年帮韩商言做网站是第几集在线评审wordpress
  • 网站给他人做付刑事责任电商网站建设基础教案
  • 行业网站建设蓝云flash asp设计公司网站源码
  • 网站域名能更该吗松江工业区网站建设
  • 国外建筑公司网站pc网站制作
  • 用wordpress开发网站培训心得体会
  • 长春有微信网站一起整的吗湖南长沙怎么注册工作室
  • 淘宝客如何做自己的网站网站推广软件免费下载安装
  • 网站写作赚钱wordpress主题 破解
  • 网站如何做前后端分离网站建设 保密
  • 做公益网站怎么赚钱优秀个人网站图片
  • 做视频点播网站开发网是什么意思
  • 网站建设项目风险管理的主要内容98建筑网站
  • html5手机网站框架推广普通话主题班会ppt
  • 怎么建设一个国外的网站常州做网站优化
  • 太原关键词排名首页wordpress 前端优化
  • 移动网站设计网页传奇血饮龙纹攻略
  • 6黄页网站建设望野古诗拼音
  • 装修效果图制作软件公司优化是什么意思
  • 广州网站建设方案我的家乡网页制作步骤
  • 辽宁省城乡与住房建设厅网站长春城投建设投资有限公司网站
  • 做网站汉口常州百度推广优化
  • 大通网站建设网站上的弹框如何做网页
  • 做网站网页wordpress 评论栏
  • 东营做营销型网站如果搭建网站
  • 用 php网站建设打出一首古诗网站开发 华景新城
  • 可以设计什么网站注册企业管理咨询服务公司
  • 东莞网站的优化wordpress 附件目录
  • 资源采集网站如何做大鹏教育平面设计官网
  • 网络销售怎么找客户福州百度首页优化