API тестирования Mocha не дает ответа - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь проверить API узла в mocha, но не получаю ответа от запроса 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 TEST -> не определено (ответ = не определено)

Но синтаксис тестирования выглядит нормально, поскольку он работает с общедоступным 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, МОЖЕТ найти проблему, не уверен: не удалось получить ответ.

Возможные решения:

Отключить проверку SSL-сертификата <- сделал это Отключил проверку SSL сертификата в почтальоне, и все заработало: </p>

Ответ был таким же, как в браузере: {"succes": true}

Я пытался найти способ отключить его в коде и для тестирования, но мне не повезло найти его. Это первый раз, когда я что-то тестирую.

1 Ответ

0 голосов
/ 11 января 2019

Ваше предположение верно, так как это проблема, связанная с проверкой сертификата. Я считаю, что это должно работать:

 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'; должен быть не частью каждого теста, а определен на более высоком уровне, чтобы он выполнялся только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...