我正在使用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