首页
学习
活动
专区
圈层
工具
发布

使用 Nock 来模拟 http 请求响应

本文作者:IMWeb zzbozheng 原文出处:IMWeb社区 未经同意,禁止转载 nock 是前端常用来模拟http请求响应的工具,它基于nodejs的原生http模块,并且他可以让我们写一些轻逻辑的代码...Nock将会拦截这个请求并立即返回你预先定义好的响应。 当我第一次开始使用Nock时,我急切地开始使用它进行单元测试。 然而,我很快就感觉到我花了更多时间编写Nocks而不是实际测试业务逻辑。...= nock('http://www.example.com') .get(/source$/) .reply(200, 'path using regex matched'); var...scope = nock('http://www.example.com') .get(function(uri) { return uri.indexOf('cats') >=...所有HTTP开销现在都包含在API模块中。 我们已经最小化地完成了HTTP传输,最大限度地减少了使用 Nock 来测度 。

2.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    云上Nodejs同构服务端渲染容灾

    背景 我们的项目是一个同构的nodejs服务端渲染项目,服务使用镜像部署,支持直接返回nodejs服务端渲染的html,也支持返回静态html资源,用户在客户端浏览器发起请求获取数据,然后再渲染页面...绝大多数情况下,我们的nodejs服务正常运行,提供服务端渲染完成的html,但是少数情况下需要返回静态的html资源(nodejs服务出现异常,镜像发布异常等等)。...proxy_intercept_errors on; #注意要开启这个配置 # 拦截nodejs服务端渲染的异常,转发到静态资源服务器上去。...error_page 500 501 502 503 504 404 @static_file; location @static_file { proxy_pass http://staticservers...://pagesnodeserver; # 拦截nodejs服务端渲染的异常,转发到/static_file路径上去 error_page 500 501 502 503

    1.2K50

    怎样编写更好的 JavaScript 代码

    查找数组元素【https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find】 始终假设你的系统是分布式的...发送 HTTP 请求可能需要几秒甚至几分钟,在这期间如果 JS 停止执行代码,直到响应返回之前,语言将无法使用。 JavaScript 通过事件循环解决了这个问题。...替代方案:testdouble 模拟 — Nock Nock on Github(https://github.com/nock/nock?...source=post_page---------------------------) HTTP 模拟是伪造 http 请求中某些部分的过程,因此测试人员可以注入自定义逻辑来模拟服务器行为。...http 模拟可能是一种真正的痛苦,nock 使它不那么痛苦。Nock 直接覆盖 nodejs 内置的 request 并拦截传出的 http 请求。这使你可以完全控制 http 响应。

    1.8K30

    (译)Istio:503、UC 和 TCP

    Istio 检测到故障后进行重试,然后给上游返回了成功信息。然而值得注意的是,故障总会发生,我们应该面向故障进行应用的构建。我们的应用跨越多个 AZ,出现这种奇怪的问题,会有很多可能的错误源头。...注意:这不是 http2.0 的情景,看起来 Istio 1.2 会有能力把 Envoy 之间的连接池切换为 http2.0。 这样我们就决定,要进一步对 sauron-seo-app 进行观察。...我们的服务器是 nodejs,Google 搜索发现了 Nodejs 文档中的一段内容: 以毫秒为单位的超时时间,缺省值 5000(5秒):服务器在处理完最后一个响应之后,等待新数据进入的时间,如果超过这一时间都未进行活动...缺省设置如下: nodejs:5 秒 python:10 秒 tomcat:20 秒 所以 Socket 超时越短,RST 就会越多,也就会有越多的 503 问题。...Nodejs const server = app.listen(port, '0.0.0.0', () => { logger.info(`App is now running on http://localhost

    3.7K21

    前端基础——谈谈HTTP

    •GET:向特定资源发出请求(请求指定页面信息,并返回实体主体); •POST:向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改; •HEAD:与服务器索与...get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头); •put:向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容...trace是http8种请求方式之中最安全的; •delete:请求服务器删除request-URL所标示的资源*(请求服务器删除页面); •option:返回服务器针对特定资源所支持的HTML请求方法...POST方法是把提交的数据放在HTTP包的Body中; get方式提交参数:http://192.168.68.128/upload-labs/Pass-01/index.php?...://www.itbilu.com/nodejs Refresh–用于重定向,或者当一个新的资源被创建时。

    1K30

    HTTP协议

    GET:向特定资源发出请求(请求指定页面信息,并返回实体主体); POST:向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改; HEAD:与服务器索与...get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头); put:向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容...trace是http8种请求方式之中最安全的; delete:请求服务器删除request-URL所标示的资源*(请求服务器删除页面); option:返回服务器针对特定资源所支持的HTML...POST方法是把提交的数据放在HTTP包的Body中; get方式提交参数:http://192.168.68.128/upload-labs/Pass-01/index.php?...://www.itbilu.com/nodejs Refresh–用于重定向,或者当一个新的资源被创建时。

    1K20
    领券