我正在写一个基本的摩卡测试。我尝试创建一个用户并将其保存到数据库中。
var should = require('should');
var User = require('../../models/User.js');
require('../utils');
var testAccount = new User({
local:{
email: 'test@gmail.com',
password: 'a'
}});
describe('request', function() {
describe('request', function() {
it('should create users', function(done) {
testAccount.save(function(err, user){
should.not.exist(err);
done();
});
});
it('should list users', function(done) {
User.find({}, function(err, users){
should.not.exist(err);
users.length.should.equal(1);
done();
});
});
});
});
utils.js
是一个简单的js文件,可确保与数据库的连接
var dbURI = 'dburi';
var mongoose = require('mongoose');
var clearDB = require('mocha-mongoose')(dbURI);
beforeEach(function (done) {
if (mongoose.connection.readyState === 0) {
mongoose.connect(dbURI, function (err) {
if (err) {
throw err;
}
return done();
});
}
else {
return done();
}
});
afterEach(function (done) {
mongoose.disconnect();
return done();
});
Mocha不会为save
方法抛出任何错误,即使它没有保存用户(我也检查了数据库)。我错过了什么吗?
1 passing (67ms)
1 failing
1) request request should list users:
Uncaught AssertionError: expected 0 to be 1
+ expected - actual
+1
-0
答案 0 :(得分:1)
我明白了。我需要mocha-mongoose
模块在每次测试之前清除数据库。