提问人:Georgy 提问时间:10/27/2023 更新时间:10/27/2023 访问量:73
在 Playwright 的 multipart/form-data 请求中断言 FormData
Assert FormData in multipart/form-data request in Playwright
问:
我尝试使用 Playwright 测试我的 POST 请求。我等待发出请求,获取并尝试使用FormData进行断言。multipart/form-data
postData()
const requestPromise = page.waitForRequest('**/endpoint')
await helpers.clickButtonByName('Submit')
const formData = new FormData()
formData.append('test', 'something')
expect((await requestPromise).postData()).toEqual(formData)
我收到错误,例如:
Error: expect(received).toEqual(expected) // deep equality
Expected: {Symbol(state): [{"name": "test", "value": "something"}]}
Received: "------WebKitFormBoundaryQWipcI3dAh3FVlJW·
Content-Disposition: form-data; name=\"test\"···
something·
------WebKitFormBoundaryQWipcI3dAh3FVlJW--·
"
我想测试我在请求中发送的有效负载。我该怎么做?谢谢
答:
1赞
hardkoded
10/27/2023
#1
剧作家不解析帖子(它确实解析)。我认为最有效的方法是执行包含。像这样的东西:multipart/form-data
application/x-www-form-urlencoded
const postData = (await requestPromise).postData();
for (const key in yourFormDataAsAnObject) {
if (obj.hasOwnProperty(key)) {
expect(postData).toContain(`${key}="${obj[key]}"`);
}
}
我敢打赌,你期待一个更好的答案,但这是我能想到的。
评论
0赞
Georgy
10/30/2023
谢谢!这是一个很好的答案!我会用这个想法
评论