云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名注册_云存储是啥意思_便宜的

小七 141 0

单元测试工作者功能

如果您不知道,Cloudflare Workers允许您在我们所有165+个数据中心中运行Javascript。我们很高兴看到一些工人的创造性应用。随着用例的复杂性增加,对代码进行冒烟测试的需求也在增加。更具体地说,如果您的Worker包含多个函数,那么除了确保整个Worker返回为预期的。在这篇文章,我们将演示如何使用Cloudworker对Cloudflare worker及其各自的功能进行单元测试,由Dollar Shave Club工程团队创建。dollarshave Club是Cloudflare的客户,他们创建了Cloudworker,一个工人运行时的模拟,用于测试目的。我们真的很感谢他们。他们好心地在我们的博客上发布了它。这个post将演示如何抽象出Cloudworker,并用编写它们的语法测试worker。示例脚本在我们开始配置Cloudworker之前,让我们先介绍一下在我们的示例中将要测试的简单脚本。如您所见,此脚本包含两个函数,这两个函数都有助于对客户端.addEventListener('fetch',event=>{事件响应(手柄请求(事件请求))})异步函数加法(a,b){返回a+b}异步函数handleRequest(请求){const added=等待添加(1,3)返回新的响应(`Sum is${added}!`)}此脚本将对路由处于活动状态worker.example.com.Directory Set在新目录中创建新的npm(npm init)项目后,我将工人.js文件,包含上述内容,并创建了包含worker的文件夹test-测试.js. 结构如下所示。。----- 工人.js-----试验. 工人-测试.js-----节点_模块----- 包.json-----包装-锁定.json.下一步,我需要安装Cloudworker(npm install@dollarshaveclub/Cloudworker--save dev)和Mocha测试框架(npm install Mocha--save dev),如果您没有全局安装的话。确保json.json包反映了摩卡在测试中的价值,例如:"脚本":{"test":"摩卡"}现在我们终于可以写一些测试了!幸运的是,mocha有异步/等待支持,这将使这变得非常简单。想法很简单:Cloudworker允许您将一个Worker放在HTTP请求前面的开发中,并检查回答。写作测验!在任何测试逻辑之前,我们将在测试文件(worker)的顶部放置两行代码-测试.js). 在mocha中运行每个async function()之前,第一行将Cloudworker和我们的Worker脚本中的所有属性值分配给全局上下文。第二行需要assert,它通常用于比较预期输出和mocked输出前(异步函数(){对象.分配(全局,新(require('@dollarshaveclub/cloudworker'))(require('fs').readFileSync('工人.js','utf8'))。上下文);});//你将替换工人.js与您的工作人员的相对路径const assert=require('assert')现在,当我们访问Cloudworker和Worker使用的所有底层函数时,测试看起来更像一个Worker本身脚本.描述("工人测试",函数(){it('返回一个表示和为4'的体,异步函数(){let url=新url('https://worker.example.com')let req=新请求(url)let res=等待处理请求(req)让身体=等待res.文本()断言相等(body,'总和是4!')})it('正确执行加法操作',async function(){设res=等待加法(1,1)断言相等(res,2)})})我们可以用这种方法用我们的Worker测试单个函数,如上面addition()函数调用所示。这是非常强大的,并且在部署复杂的worker时可以更加自信,因为您可以测试组成脚本的每个组件。我们希望这是有用的,并欢迎任何反馈。