在赛普拉斯中以XHR发送POST请求

时间:2020-04-02 16:30:03

标签: api post xmlhttprequest cypress form-data

我正在使用Cypress测试应用程序API,我需要发送带有内容类型表单数据的请求。只要我知道Cypress cy.request不支持此数据类型,所以我使用的是自定义命令:

Cypress.Commands.add('form_request', (method, url, formData, done) => {
let xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.responseType = 'json';
xhr.onload = function() {
    done(xhr);
    };
xhr.send(formData);
})

我的测试如下:

import {baseUrl} from '../../support/config'

let formData = new FormData();

formData.append('name', 'Edgar');
formData.append('email', 'some@mail.com');

let method, url;

describe('ENDPOINT: /v1/send_message/', () => {

    describe('Positive scenario for sending contact form', () => {
        it('Verify if POST returns status 201 and body', () => {
            method = 'POST';
            url = `${baseUrl}/v1/send_message/`; 


            cy.form_request(method, url, formData, function (response){
            expect(response.status).to.eq(201);
            expect(formData.get('name')).to.eq(response.response.name);
            expect(formData.get('email')).to.eq(response.response.email);
            });
        })

但是当我使用npx cypress打开它运行时,即使存在断言错误,我的所有测试也始终会通过...我花了很多时间在cypress上发送xhr,我以为我终于找到了解决方案,我该怎么办下一个? cypress results

0 个答案:

没有答案