[英]Mocha testing API gives no response
我正在尝试在Mocha中测试节点API,但是没有收到在浏览器中正常运行的API请求的响应。
这是浏览器中的响应:
浏览器中的响应: {“ succes”:true}
这是不起作用的API测试:
var request = require("request");
var expect = require("chai").expect;
describe("API TEST", function(){
it("Should return true", function(done){
request.get({ url: "https://skilltree.benis.hu/apitest" },
function(error, response, body) {
console.log(response);
done();
});
});
});
结果:
API测试->未定义(响应=未定义)
但是测试语法看起来不错,因为它可以与公共API一起使用:
describe("API TEST", function(){
it("Should return true", function(done){
request.get({ url: "https://anapioficeandfire.com/api/characters/583" },
function(error, response, body) {
console.log(response);
done();
});
});
});
结果:结果是一堆响应数据。
试图在POSTMAN中进行测试,MIGHT已找到问题,不确定:无法获得响应。
可能的解决方案:
关闭ssl证书验证<-这样做是在邮递员中关闭了SSL证书验证,它的工作原理是:
响应与浏览器中的响应相同: {“ succes”:true}
我试图找到一种在测试中也将其禁用的方法,但是我没有运气。 这几乎是我第一次测试任何东西。
您的假设是正确的,因为它是与证书验证有关的问题。 我相信这应该有效:
it.only("Should return true", function(done){
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
request.get({ url: "https://skilltree.benis.hu/apitest" },
function(error, response) {
console.log(response.body);
done();
});
});
运行它时,我得到{"succes":true}
。
注意,这仅用于演示目的, process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
不应作为每个测试的一部分,而应在更高的级别进行定义,以便它只能运行一次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.