2016-02-22 44 views
0

所以我一直在试图实现一个向网站发送POST请求的Cucumber步骤,等待请求完成(因为以下步骤依赖于在后是成功的),打破了测试,如果出了什么歪:节点:等待Post请求完成并处理回调的正确方法

this.Then(/^Post file "([^"]*)" and wait for the request to finish$/, function(fileName, callback) { 

    var request = require("request"); 
    var fs = require("fs-extra"); 

    var options = { 
    method: 'POST', 
    url: "https://www.testOver9000.com/", 
    body: fs.readJsonSync(fileName), 
    json: true, 
    auth: { 
     username: "test", 
     password: "test" 
    } 
    }; 

    request(options, function(error, response, body) { 

    if (!error && response.statusCode == 200) { 
     callback(null); 
    } else { 
     callback(error); 
    } 
    }); 
}); 

此刻我在这里两个问题:

  1. 此步骤不等待HTTP POST完成,然后再转到下一步。
  2. 如果请求失败,错误不会传递回回调,也不会将其标记为失败。

任何帮助,将不胜感激。

+0

cucumberjs的版本是什么?你打印错误吗? – nilesh

回答

0

我有一种感觉,即使在触发POST调用之前,您的测试仍然失败。如果下面的线路失败,我不知道黄瓜是否正在悄然失败,然后进入下一步。

body: fs.readJsonSync(fileName) 

打印错误?什么版本的cucumberjs?这些答案可以帮助你更好地指导