javascript - Cypress :如何针对 window.fetch POST 请求正文的内容进行断言?

标签 javascript sinon cypress sinon-chai

假设我在 window.fetch 上有一个 cypress 测试,像这样:

describe('My test', () => {
beforeEach(() => {
    cy.visit('http://localhost:3000', {
        onBeforeLoad(win) {
            cy.spy(win, 'fetch')
        },
    })

我可以断言 POST 请求具有特定的 URL,如下所示:

cy.window().its('fetch').should('be.calledWith', 'http://whatever.com/stuff')

但我不知道如何针对该请求的正文进行断言。 例如,我如何断言它包含 my_param=10

谢谢!

最佳答案

没人吧?好吧,如果其他人偶然发现了这个,我已经弄清楚了,下面是你如何做到的:

cy.window().its('fetch').should(
  'be.calledWithMatch', 
  'http://your-url.com/here', 
  sinon.match.has('body', sinon.match('your_param=expected_value')))
  
        

请记住将 sinon 作为单独的依赖项导入。

您可以多次使用这一行来对多个变量进行断言。

关于javascript - Cypress :如何针对 window.fetch POST 请求正文的内容进行断言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52376460/

相关文章:

javascript - 使用 jQuery 在 div 之前添加 div

javascript - 更改功能后 Sinon 测试失败

file-upload - Cypress 文件上传(图片/jpeg)

vue.js - Cypress Vue 组件测试从已挂载发出的事件

javascript - 使用鼠标在 Three.js 中旋转相机

javascript - jquery click 函数总是返回最高值

javascript - 怎么办|和 + 是否有将字符串转换为数字的技巧?

javascript - sinon.js withArgs 回调函数

node.js - 使用 promise 的 Lambda 的 sinon stub

cypress - 在 Cypress 中,如何等待页面加载?