【发布时间】:2018-04-19 13:31:31
【问题描述】:
我正在尝试为使用 Express 和 MongoDB 制作的 REST API 设置测试。我想使用mocha、chai 和chai-http,但我遇到了一个奇怪的行为,似乎beforeEach 函数超过了超时,就像它永远不会被解决一样。我该如何解决这个问题?
//During the test the env variable is set to test
process.env.NODE_ENV = 'test';
let mongoose = require("mongoose");
let User = require('../models/User');
//Require the dev-dependencies
let chai = require('chai');
let chaiHttp = require('chai-http');
let app = require('../app');
let should = chai.should();
chai.use(chaiHttp);
//Our parent block
describe('Users', function () {
beforeEach(function (done) { //Before each test we empty the database
User.remove({}, function (err) {
done();
});
});
/*
* Test the /GET route
*/
describe('/GET users', function () {
it('it should GET all the users', function (done) {
chai.request(app)
.get('/users')
.end(function (err, res) {
res.should.have.status(200);
res.body.should.be.a('array');
res.body.length.should.be.eql(0);
done();
});
});
});
});
【问题讨论】:
-
您确定您正确配置了与数据库的连接吗?当您致电
User.remove时,连接已打开?
标签: node.js express mocha.js chai