Я использую 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