Top*_*cus 20 javascript unit-testing mocha.js express
我正在尝试使用mocha和supertest运行我的应用程序测试,但我总是得到错误:连接ECONNREFUSED.
app.js代码:
var express = require('express'),
mongoose = require('mongoose'),
fs = require('fs'),
config = require('./config/config');
mongoose.connect(config.db);
var db = mongoose.connection;
db.on('error', function () {
throw new Error('unable to connect to database at ' + config.db);
});
var modelsPath = __dirname + '/app/models';
fs.readdirSync(modelsPath).forEach(function (file) {
if (file.indexOf('.js') >= 0) {
require(modelsPath + '/' + file);
}
});
var app = express();
require('./config/express')(app, config);
require('./config/routes')(app);
app.listen(config.port);
exports.app = app;
console.log('LISTEN ON http://localhost:3000/')
Run Code Online (Sandbox Code Playgroud)
test.js代码:
var should = require('should');
var assert = require('assert');
var request = require('supertest');
var mongoose = require('mongoose');
var app = require('../../../app').app;
describe('Categories', function() {
it('- POST is testing', function(done) {
request(app)
.post('http://localhost:3000/categories')
.send({title:'test', text:'test'})
.end(function(e, res) {
console.log(e, res);
});
});
});
Run Code Online (Sandbox Code Playgroud)
测试输出:
LISTEN ON http://localhost:3000/
Categories
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' } undefined
1) - POST is testing
0 passing (2s)
1 failing
Done, but with warnings.
Run Code Online (Sandbox Code Playgroud)
你能解释为什么会发生这种情况吗?
先感谢您!
Topicus
Top*_*cus 36
问题是路径.用这个"/ categories"替换"localhost:3000/categories"一切正常.
工作范例:
describe('Categories', function() {
it('- POST is testing', function(done) {
request(app)
.post('/categories')
.send({title:'test', text:'test'})
.end(function(e, res) {
console.log(e, res);
});
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12322 次 |
| 最近记录: |