我在 React 中有一个看起来像这样的过程:
handleButtonClick() {
const payload = new FormData();
payload.append('foo', someFileBlobContent);
axios.post('/my-api/', payload);
}
当一个按钮被点击时,一些数据被编译为 FormData,然后在一个 POST 请求中作为负载发送到一个 API。
在我的 Jest/Puppeteer 测试中,我试图确认请求包含它应该包含的数据:
page.click('.my-button');
await page.waitForRequest(request => {
if (request.url().match(/my-api/) && request.method() === 'POST') {
expect(request.postData()).toBeDefined();
return true;
}
});
在这种情况下request.postData()
是undefined
。Puppeteer 中是否有某种方法可以检查有效负载是FormData
结构的 POST 请求的内容?
在 Chrome 中运行该进程时,我可以通过 Chrome devtools 看到网络请求中显示的 FormData,所以我知道数据正在发送,但我想断言它。