Javascript Cypress:使HTTP请求与Promise一起工作
我正试图在我的服务器上发出一个HTTP请求,然后检查结果。 目前,我在postar方法的Javascript Cypress:使HTTP请求与Promise一起工作,javascript,promise,cypress,Javascript,Promise,Cypress,我正试图在我的服务器上发出一个HTTP请求,然后检查结果。 目前,我在postar方法的响应对象中得到了一个结果。但是对then()方法的测试结果是null 问题在哪里 postCar($access_token, $body) { return new Cypress.Promise((resolve) => { let bodyString = ''; cy.request({ method
响应
对象中得到了一个结果。但是对then()
方法的测试结果是null
问题在哪里
postCar($access_token, $body) {
return new Cypress.Promise((resolve) => {
let bodyString = '';
cy.request({
method: 'POST',
url: '/applications',
form: true,
failOnStatusCode: false,
body: $body,
headers: {
Content: 'application/json',
Authorization: 'Bearer ' + $access_token
}
})
.then((response) => {
cy.log('Response = ' + JSON.stringify(response));
resolve(response);
});
});
}
我的测试:
it('Car Spec : create a car', function () {
let accessToken = Cypress.env('ACCESS_TOKEN')
var correct_body = getValidBody();
cy.postCar(accessToken, correct_body).then(function(res) {
cy.log('Application Spec : postCar response :' + JSON.stringify(res));
});
});
您不应该将命令包装为
承诺
。Cypress自定义命令并不意味着返回承诺。试试这个:
功能邮政卡($access\u token,$body){
让bodyString=''
赛义德请求({
方法:“POST”,
url:“/应用程序”,
形式:对,
failOnStatusCode:false,
body:$body,
标题:{
内容:“application/json”,
授权:`Bearer${$access\u token}`,
},
})
。然后((响应)=>{
cy.log(`Response=${JSON.stringify(Response)}`)
返回响应
})
}
socy.log('Response='+JSON.stringify(Response))
outputsResponse=null
?查看文档,您是否可以返回cy.request(…
?将所有内容包装在承诺中,然后解决响应似乎有些过分。我可能遗漏了一些内容though@JaromandaX不,这是cy.log('applicationspec:postar响应:'+JSON.stringify(res));
哪个是null@dbramwell你能提供一个例子吗?所以cy.log('Response='+JSON.stringify(Response));
输出一个值