Тестирование запросов API на localhost - PullRequest
0 голосов
/ 24 января 2019

Я использую Mocha и Chai для разработки сценариев тестирования для моего API в Node.js. У меня есть конечная точка называется / измерения. Эта конечная точка должна возвращать statusCode 200.

Вот как я пытаюсь достичь своей цели:

var request = require("request");
var chai = require("chai");
var expect = chai.expect;


// Criamos nosso primeiro caso de teste e fornecemos uma descricao utilizando describe
describe("Teste monitora-sec", function () {

    it("Deve receber as medições", function (done) {
        request.get('localhost:3000/measurements')
            .expect(200)
            .end(function (err, res) {
                expect(res.body).to.have.lengthOf(506);
                done(err);
            });
    });
});

Когда я запускаю mocha на gitbash, я получаю эту ошибку:

Teste monitora-sec
    1) Deve receber as medições


0 passing (34ms)
1 failing

1) Teste monitora-sec
    Deve receber as medições:
    Error: Invalid protocol: localhost:
    at Request.init (node_modules\request\request.js:458:31)
    at new Request (node_modules\request\request.js:127:8)
    at request (node_modules\request\index.js:53:10)
    at Function.get (node_modules\request\index.js:61:12)
    at Context.<anonymous> (test\measurement.spec.js:11:17)

Что я делаю не так?

[EDIT]

РЕШЕНИЕ

Немного изменить код:

var request = require("request");
var chai = require("chai");
var expect = chai.expect;
var urlBase = "http://localhost:3000";

describe("Teste monitora-sec", function () {

    it("Deve receber as medições", function (done) {
        request.get(
            {
                url: urlBase + "/measurementsLast"
            },
            function (error, response, body) {

                // precisamos converter o retorno para um objeto json
                var _body = {};
                try {
                    _body = JSON.parse(body);
                }
                catch (e) {
                    _body = {};
                }

                expect(response.statusCode).to.equal(200);

                done(); // avisamos o test runner que acabamos a validacao e ja pode proseeguir
            }
        );
    });
});

Одной из проблем было то, что я написал просто localhost:3000. Должно быть http://localhost:3000

1 Ответ

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

Проблема в том, что localhost:3000 не является действительным адресом.

Измените его на http://localhost:3000, и запрос будет в порядке.

...