Node.js的故事和https发布请求

时间:2016-09-22 09:30:22

标签: node.js mocha chai

在过去的几周里,我正在摆弄Node.js和Mocha。发生碰撞以下问题。

我尝试测试https发布请求,但结果绝不是我所期望的。 我可以选择测试时间,或者通过(当它失败时)。

你能不能给我一些可能出错的提示/提示?



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

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


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




2 个答案:

答案 0 :(得分:1)

以下是该问题的替代解决方案:

而不是https我使用请求



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

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




我知道我实际上并没有发布任何内容,简单的GET就足够了,但是嘿,宝贝步骤!

答案 1 :(得分:1)

您需要在请求上调用.end以完成发送请求(否则,Node将等待更多数据首先写入其中):

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