【问题标题】:Node: Correct way of waiting for a Post request to finish and handle the callback节点:等待 Post 请求完成并处理回调的正确方法
【发布时间】:2016-02-22 15:20:53
【问题描述】:

所以我一直在尝试实现一个 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. 如果请求失败,错误不会传回回调,也不会标记失败。

任何帮助将不胜感激。

【问题讨论】:

  • 什么版本的 cucumberjs?你打印error

标签: node.js http callback request cucumberjs


【解决方案1】:

我感觉你的测试在触发 POST 调用之前就失败了。如果以下行失败,我不知道黄瓜是否默默地失败并进入下一步。

body: fs.readJsonSync(fileName) 

您是否打印错误?什么版本的黄瓜?这些答案可以帮助您更好地指导

【讨论】:

    猜你喜欢
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 2014-11-15
    • 2016-04-13
    • 2014-09-23
    • 1970-01-01
    相关资源
    最近更新 更多