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

做网站需要多少钱专业搜索引擎seo合作

做网站需要多少钱,专业搜索引擎seo合作,长春专业做网站公司排名,企业管理咨询服务是什么在上一篇文章里,我们介绍了测试金字塔以及如何将它应用在分布式系统里。\\\\这篇文章将关注测试金字塔里的单元测试层,并探讨如何高效地为分布式系统(如微服务)构建单元测试。\\定义测试边界\\定义测试边…

在上一篇文章里,我们介绍了测试金字塔以及如何将它应用在分布式系统里。

\\

699af3bc40928144d3116068adf46208.png

\\

这篇文章将关注测试金字塔里的单元测试层,并探讨如何高效地为分布式系统(如微服务)构建单元测试。

\\

定义测试边界

\\

定义测试边界是实现高效测试的第一步。测试的目的是为了验证边界里“黑盒”的行为是否符合预期,我们向黑盒输入数据,然后验证输出的正确性。

\\

在单元测试里,黑盒指的是函数或者类的方法,目的是单独测试特定代码块的行为。为了更好地理解这个概念,我们以简单的注册功能为例:

\\

176c63868b8cde02b1954c84358a56d9.png

\\

我们可以看到这个函数包含了一些输入和输出。这个函数接受基本的用户注册信息作为输入参数,并返回新创建的用户ID。

\\

不过这里也有一些不是很明显的输入数据。这个函数调用了另个外部函数:一个向数据库插入数据,一个对密码进行散列和持久化。在某些情况下,数据库可能会返回错误。比如,因为用户名唯一性问题导致数据库插入失败,又或者需要通过调用外部的微服务进行密码散列,如果网络连接出现问题或密码散列服务因发生过载导致服务超时,那么密码散列函数就会返回错误。

\\

为了全面测试用户注册功能,单元测试所要做的不仅仅是简单地传进去不同的输入参数,它还要能够让外部依赖项能够使用这些输入来验证函数的行为是否符合预期。在测试函数的错误处理逻辑时,这点很重要的。

\\

Stub和Mock

\\

为了制造各种输入数据,需要使用stub,也叫作mock。这个可以使用依赖注入或方法搅拌(swizzle)来实现。测试框架在运行被测试的函数时可以确保对底层依赖项的调用会被重定向到stub上:

\\

e521fce459db45c6d28c56c348171313.png

\\

我们可以使用stub来达到各种目的:

\\
  • stub可以什么事也不做。这样可以加快个别单元测试的速度,如果后续有其他单元测试可用于测试边界情况的话就可以这样做。\
  • stub可返回任意的值,用于模拟外部函数的输出。这在测试罕见的边界情况时会非常有用,比如有些错误场景很少会发生或者难以重现。\\t
  • stub也可以用于捕捉被测试函数欲传给外部函数的参数,或者把这些参数记录下来。这样就可以验证被测试函数需要调用哪些外部函数以及需要传给外部函数哪些参数。\

测试分布式系统需要有一套很好的stub,有了这些stub,单元测试才能够在没有外部服务的情况下运行。下面列出了一些工具,用于创建各种stub。

\\

Node.js/JavaScript

\\
  • sinon.js (提供了stub和间谍功能)\\t
  • testdouble.js (主要用于面向对象API的stub生成器)\
  • nock (主要用于模拟HTTP请求行为)\

Python

\\
  • mock\

Go

\\
  • gomock\

Java

\\
  • mockito\\t
  • easymock\

单元测试流程

\\

单元测试的目的是为了给开发人员提供快速验证他们所写代码的行为。因为对外部依赖的调用使用了stub,所以通常可以在几秒钟内就可以执行数千个单元测试。所以,开发人员可以把单元测试加入到他们的开发工作流当中,要么直接集成到他们的IDE里,要么通过终端命令行来运行。开发人员在编写代码的同时频繁地运行单元测试可以帮助他们及早地发现代码中的问题。

\\

一旦开发人员养成了这样的习惯,那么就可以进行测试驱动开发了。开发人员在开发新特性之前会先准备好单元测试,在新特性被加进来之前,测试总是失败。在经过不断的测试和代码修改之后,一个完整的功能被开发出来了,最后再运行测试就能通过。

\\

单元测试的作用不应局限于代码开发,它们也应该被集成到代码合并流程里。GitHub支持一些主流持续集成服务器的状态检查。一般的流程是这样的:保护好“master”分支,不允许开发人员向该分支提交代码,而是让他们把代码提交到其他分支上。在将代码合并到master分支的时候,GitHub要求先通过状态检查。

\\

Jenkins、CircleCI和TravisCI都提供了状态检查钩子(hook),它们会从分支上获取代码并运行单元测试。如果通过了,就允许合并代码,否则就不允许。

\\

e54692eaf2b8e6e9d9ca0da482934fbf.png

\\

总结

\\

单元测试是测试工具箱里的一个非常重要的工具。为了对分布式系统代码进行全面的单元测试,有必要利用一些支持stub的测试框架,用于模拟各种错误场景或外部依赖的各种响应。

\\

查看英文原文:Microservice Testing: Unit Tests

http://www.lbrq.cn/news/2710603.html

相关文章:

  • 服务好的南昌网站建设百度一下照片识别
  • 网站建设推广公司需要哪些岗位百度网盘官方下载
  • flash网站建设技术是什么大丰seo排名
  • wordpress 获取目录自助建站seo
  • 效果图网站推荐大全面包砖百度明令禁止搜索的词
  • 苏州相城做网站的百度引流推广哪家好
  • 什么叫网站建设四网合一nba最新消息
  • 南京网站制作哪家好游戏推广怎么快速拉人
  • 定制版网站建设详细报价今日头条官网登录入口
  • b2b电子商务网站商务模式互联网服务平台
  • 免费创意logo一键生成器百度seo权重
  • 做网站模板和服务器是一样的吗百度推广工具
  • 网站建设采购公告百度公司地址在哪里
  • 移动 开发 网站建设百度seo教程
  • 做网站前的准备工作icp备案查询官网
  • 网站设计风格分析深圳推广系统
  • 龙岗区网站制作软文营销的概念
  • 厦门网站建设哪家不错百度指数怎么看排名
  • 营销型企业网站开发爱站工具查询
  • 专业做律师网站的公司培训课程有哪些
  • 如何做网站webstorm好搜搜索引擎
  • 南宁网站建设代理郑州今天刚刚发生的新闻
  • 个人网站怎么做支付商丘网络推广外包
  • 有没有什么推荐的网站无线网络优化工程师
  • 网站制作的评价指标收录查询工具
  • 石家庄网站开发建设网络营销企业有哪些
  • 大型 网站的建设 阶段简单的网页设计
  • 网站给他人做付刑事责任seo快速排名软件app
  • 房屋中介的网站怎么建设石狮seo
  • 凡科网网站系统搜索网站
  • java中在多线程的情况下安全的修改list
  • 弹性扩展新范式:分布式LLM计算的FastMCP解决方案
  • 【跨服务器的数据自动化下载--安装公钥,免密下载】
  • OBOO鸥柏丨智能会议平板教学查询一体机交互式触摸终端招标投标核心标底参数要求
  • 如何提升需求分析能力
  • openEuler、 CentOS、Ubuntu等 Linux 系统中,Docker 常用命令总结