javascript - 对同一端点的多个响应的 Puppeteer 请求拦截最佳实践
问题描述
对于我的单元测试,我拦截所有请求,然后以特定端点的模拟日期响应。我有一个pageMockedRequests
可以打开端点的功能。
当我想根据被调用的次数更改我发回的响应时,我的问题就出现了。
const pageMockedRequests = (request) => {
switch (request.url()) {
case ENDPOINTS.A:
return request.respond(jsonResponseWrapper(returnValidToken(), 200));
case ENDPOINTS.B:
if (count === 0) {
return request.respond(jsonResponseWrapper({RESPONSE FOR 1st CALL}, 200));
} else if (count === 1) {
return request.respond(jsonResponseWrapper({RESPONSE FOR 2nd CALL}, 200));
}
default:
return request.abort();
}
};
以上表明ENDPOINT.B
第二次将不同于第一次响应。我目前正在更改它count
。
还有其他人这样做不同吗?
解决方案
您可以为 Puppeteer 使用Mockiavelli请求模拟库。它的一次性模拟功能(https://github.com/hltech/mockiavelli#one-time-mocks)允许为第一次和第二次调用定义不同的响应。
推荐阅读
- phpstorm - 如何关闭所有项目或 1 个文件的自动对齐?
- html - 内联 CSS 有效,但为什么不能使用外部 CSS?
- android - 用于过滤支付发送应用程序的意图过滤器
- mps - JetBrains 元编程系统不工作
- paperjs - 克隆和符号有什么区别
- amazon-web-services - 如何仅为 AWS Glue 脚本启用粘合日志记录
- reactjs - Redux Toolkit:无法访问服务器发送的错误消息
- c++ - 通过 lambda 函数转发附加参数
- powershell - 无法在powershell脚本中用逗号替换空格
- azure - 删除服务/入口控制器时如何使 Azure 不删除公共 IP?