在过去的几周里,我正在摆弄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.
});
});

答案 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