2016-09-22 2 views
0

В последние несколько недель я играл с Node.js и Mocha. Случается, чтобы столкнуться с проблемой, которая заключается в следующем.Сказка о Node.js и https post request

Я пытаюсь протестировать запрос на отправку https, но результат не является тем, что я ожидаю. Я могу выбрать либо время тестирования, либо прохождение (когда он должен потерпеть неудачу).

Не могли бы вы дать мне несколько советов, которые могли бы пойти не так?

var chai = require('chai'); 
 
var https = require('https'); 
 

 
var options = { 
 
\t \t hostname: "google.com", 
 
\t \t method: "POST" 
 
}; 
 

 

 
describe("Connection tests", function(){ 
 
\t it("should return 404", function(done){ 
 
\t \t https.request(options, function(res) { 
 
\t \t console.log('STATUS: ' + res.statusCode); 
 
\t \t chai.expect(res.statusCode).to.equal(404); 
 
\t \t done(); //if done is here it times out. 
 
\t \t }); 
 
     //done - if done is here it returns success instead failure. 
 
\t }); 
 
});

ответ

1

Вам нужно позвонить .end по просьбе завершить отправку запроса (в противном случае узел будет ждать больше данных, записанных на него первым): [интенсифицирует ударив голову на клавиатуре]

https.request(options, function(res) { 
    console.log('STATUS: ' + res.statusCode); 
    chai.expect(res.statusCode).to.equal(404); 
    done(); 
}).end(); // <-- here 
+0

Спасибо для указания моего идиотизма! – Gregion

1

Вот альтернативное решение проблемы:

Вместо HTTPS я использую запрос

var chai = require('chai'); 
 
var request = require('request'); 
 

 
describe("Connection tests", function(){ 
 
\t it("is the request approach", function(done){ 
 
\t \t request({ 
 
\t \t \t url: "https://www.google.com", 
 
\t \t \t method: "POST", 
 
\t \t \t json: true 
 
\t \t }, function(error, response, body){ 
 
\t \t \t console.log(response.statusCode); 
 
\t \t \t chai.expect(response.statusCode).to.equal(405); 
 
\t \t \t done(); 
 
\t \t }); 
 
\t }); 
 
});

Я знаю, что я вообще ничего не публикую, простого GET будет достаточно, но эй, детские шаги!

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