Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Cypress:使HTTP请求与Promise一起工作_Javascript_Promise_Cypress - Fatal编程技术网

Javascript Cypress:使HTTP请求与Promise一起工作

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

我正试图在我的服务器上发出一个HTTP请求,然后检查结果。 目前,我在postar方法的
响应
对象中得到了一个结果。但是对
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)}`)
返回响应
})
}

so
cy.log('Response='+JSON.stringify(Response))
outputs
Response=null
?查看文档,您是否可以
返回cy.request(…
?将所有内容包装在承诺中,然后解决响应似乎有些过分。我可能遗漏了一些内容though@JaromandaX不,这是
cy.log('applicationspec:postar响应:'+JSON.stringify(res));
哪个是null@dbramwell你能提供一个例子吗?所以
cy.log('Response='+JSON.stringify(Response));
输出一个值