我正在使用MOCHA测试一些快速框架代码。
我编写了一个简单的MOCHA代码来测试响应头中返回的消息。代码有效。这也意味着我连接到服务器,我可以从数据库中获取文件。
现在,我想使用“SuperTest”做同样的事情。但是,我得到“错误:连接ECONMREFUSED”
这是我的代码:
var express = require('express');
var request = require('supertest');
var app = express();
describe('GET /core/dbq/534e930204dd311822ec1c9d', function() {
this.timeout(15000);
it ('Check header message', function(done) {
request(app)
.get('http://localhost:3001/ecrud/v1/core/dbq/534e930204dd311822ec1c9d')
.expect('warning', '100 Max Record Limit Exceeded')
.expect('Content-Type', /json/)
.expect(200, done);
} )
} )
并且控制台上显示的错误是:
1) GET /core/dbq/534e930204dd311822ec1c9d Check header message:
Error: connect ECONNREFUSED
at errnoException (net.js:901:11)
at Object.afterConnect [as oncomplete] (net.js:892:19)
我正在学习使用“SuperTest”。请帮忙。谢谢。
答案 0 :(得分:0)
Supertest在随机端口上启动应用程序,并为您填充URL的主机+端口部分。您的代码应仅提供路径(和查询)部分。
request(app)
.get('/ecrud/v1/core/dbq/534e930204dd311822ec1c9d')
// etc.
.expect(200, done);
或者,您可以在运行测试之前自行启动应用程序。
describe('GET /core/dbq/534e930204dd311822ec1c9d', function() {
this.timeout(15000);
before(function(done) {
app.listen(3001, function() { done(); });
});
it ('Check header message', function(done) {
request(app)
.get('http://localhost:3001/ecrud/v1/core/dbq/534e930204dd311822ec1c9d')
// etc.
});
});
我强烈建议您使用第一种方法,否则您的测试可能会与侦听端口3001的其他应用程序发生冲突。