在赛普拉斯XHR中将POST请求修改为GET请求

时间:2020-10-23 09:44:11

标签: cypress

我的Web应用程序引发POST XHR请求,我想停止POST请求并转换为GET请求,然后将其转发到服务器,然后检查405状态码。 我可以检查响应状态代码,但无法将请求从POST修改为GET。有人这样做吗?

尝试了多个选项

代码片段1:像其他标头一样,我尝试使用“请求方法”,但不起作用

then('saving the new user form', () => {
    cy.typeText('#nameInput > input', 'Test ');
    cy.typeText('#mobileInput > input', '1234567890');
    cy.typeText('#emailInput > input', 'test@gmail.com');
    cy.server()

    cy.route('POST','/api').as('saveUserBtn')

    cy.get('#bottomSaveUserButton').click()

    cy.wait('@saveUserBtn')

    cy.get('@saveUserBtn').should((xhr) => {
        expect(xhr.requestBody).to.have.property('Request Method', 'GET')
    })
  });

&这是错误: 断言错误 预期[Array(1)]具有属性“请求方法” 赛普拉斯/support/step_definitions/asvs/verb2.js:19:41 17 | 18 | cy.get('@ saveUserBtn')。should((xhr)=> {

19 | Expect(xhr.requestBody).to.have.property('请求方法','获取') | ^ 20 | }) 21 | }); 22 |

代码片段2:此片段始终引发另一个POST请求,而不是GET

then('saving the new user', () => {
    cy.typeText('#nameInput > input', 'Test ');
    cy.typeText('#mobileInput > input', '1234567890');
    cy.typeText('#emailInput > input', 'test@gmail.com');
    cy.clickElement('bottomSaveUserButton');

    cy.server().should((server) => {
        expect(server.method).to.eq('GET')
    })

    cy.server({
        method: 'POST'
    })
    cy.route({
        method:'POST',
        url:'api'
    }).as('saveUserBtn')

    cy.clickElement('bottomSaveUserButton');

    cy.wait('@saveUserBtn').should('have.property', 'status', 200)
    });

0 个答案:

没有答案