Master
语言 & 框架

Mock Service Worker

NOT ON THE CURRENT EDITION
This blip is not on the current edition of the Radar. If it was on one of the last few editions it is likely that it is still relevant. If the blip is older it might no longer be relevant and our assessment might be different today. Unfortunately, we simply don't have the bandwidth to continuously review blips from previous editions of the RadarUnderstand more
Published: Oct 28, 2020
Oct 2020
评估?

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