Enable javascript in your browser for better experience. Need to know to enable it? Go here.

Mock Service Worker

更新于 : Oct 27, 2021
不在本期内容中
这一条目不在当前版本的技术雷达中。如果它出现在最近几期中,那么它很有可能仍然具有相关参考价值。如果这一条目出现在更早的雷达中,那么它很有可能已经不再具有相关性,我们的评估将不再适用于当下。很遗憾我们没有足够的带宽来持续评估以往的雷达内容。 了解更多
Oct 2021
试验 ?

Web 应用,特别是企业内部应用,通常分为两个部分。用户界面和小部分业务逻辑运行在浏览器中,而大部分业务逻辑、认证和持久化工作运行在服务器中。这两部分一般会通过在 HTTP 上传输 JSON 进行通讯。但请不要误认为这些端点(endpoint)是真正的 API,它们只是当应用要穿越两个运行环境时的实现细节而已。与此同时,它们也提供了一个合适的“接缝”,以便独立测试这些“零件”。当测试 JavaScript 部分时,可以通过像 Mountebank 这样的工具在网络层对其服务端进行打桩(stub)和模拟(mock)。Mock Service Worker 则提供了另一种选择——在浏览器中拦截各种请求,从而进一步简化了手工测试。和Mountebank一样,为了测试网络交互,Mock Service Worker 运行在浏览器外部的 Node.js 进程中。由于 GraphQL 的复杂性,此前我们一直难以对它在网络层进行手工模拟。而在 REST 交互之外, Mock Service Worker 对 GraphQL API 的模拟能力也为它锦上添花。

Oct 2020
评估 ?

Web 应用,特别是企业内部应用,通常分为两个部分。用户界面和小部分业务逻辑运行在浏览器中,而大部分业务逻辑、认证和持久化工作运行在服务器中。这两部分一般会通过在 HTTP 上传输 JSON 进行通讯。但请不要误认为这些端点(endpoint)是真正的 API,不,它们只是当应用要穿越两个运行环境时的实现细节而已。与此同时,它们也提供了一个合适的“接缝”,以便独立测试这些“零件”。当测试 JavaScript 部分时,可以通过像 Mountebank 这样的工具在网络层对其服务端进行打桩(stub)和模拟(mock)。还有一种方式是在浏览器中拦截各种请求。我们很喜欢这种由 Mock Service Worker 带来的方式,因为 Service Worker 是前端开发人员比较熟悉的抽象层。这种方法可以简化设置,并且执行得也更快。不过,由于这些测试没有测到真正的网络层,所以你还要实现一些端到端测试,才能得到一个健康的测试金字塔。

发布于 : Oct 28, 2020

下载 PDF

 

English | Español | Português | 中文

订阅技术雷达简报

 

立即订阅

查看存档并阅读往期内容