2016-02-22 1 views
0

Итак, я пытаюсь выполнить шаг Огурца, который выполняет запрос 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. Этот шаг не ждать POST HTTP, чтобы закончить , прежде чем перейти к следующему шагу.
  2. Если запрос не удался, ошибка не возвращается обратно в обратный вызов и не указывает, что это не сработало.

Любая помощь будет оценена по достоинству.

+0

какая версия cucumberjs? Вы печатаете 'error' – nilesh

ответ

0

У меня такое ощущение, что ваш тест не срабатывает до того, как вызывается даже вызов POST. Если нижняя строка терпит неудачу, я не знаю, будет ли огурец терпеть неудачу и перейти к следующему шагу.

body: fs.readJsonSync(fileName) 

У вас есть ошибка? какая версия огурцов? Эти ответы могут помочь вам лучше вести

Смежные вопросы