在本地主机上测试 API 个请求
Testing API requests on localhost
我正在使用 Mocha 和 Chai 为 Node.js 中的 API 开发测试脚本。我有一个名为 /measurements 的端点。此端点应 return 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);
});
});
});
当我在 gitbash 上 运行 mocha
时,我得到这个错误:
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)
我做错了什么?
[编辑]
解决方案
稍微更改一下代码:
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
问题是 localhost:3000
不是有效地址。
改成http://localhost:3000
就可以请求了
我正在使用 Mocha 和 Chai 为 Node.js 中的 API 开发测试脚本。我有一个名为 /measurements 的端点。此端点应 return 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);
});
});
});
当我在 gitbash 上 运行 mocha
时,我得到这个错误:
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)
我做错了什么?
[编辑]
解决方案
稍微更改一下代码:
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
问题是 localhost:3000
不是有效地址。
改成http://localhost:3000
就可以请求了