繁体   English   中英

Mocha测试API没有响应

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM