首页 > 解决方案 > 赛普拉斯:我如何断言 window.fetch POST 请求正文的内容?

问题描述

所以说我有一个window.fetch像这样的间谍的柏树测试:

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

谢谢!

标签: javascriptsinoncypresssinon-chai

解决方案


没人啊?好吧,如果其他人偶然发现了这一点,我想通了,这就是你的做法:

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

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

您可以多次使用此行来断言多个变量。


推荐阅读