NodeJs,Mocha和Mongoose

11

以下是翻译内容:

我有以下结构:

|server
 |db
  |mongooseTest.js
 |test
  |userModel.test.js
 |user
  |userModel.js

它们的代码如下:

mongooseTest.js

    var mongoose = require('mongoose');
module.exports = function() { var db = mongoose.createConnection('localhost', 'dbUnitTest');
db.on('connected', function() { console.log('DB: ' + db.name + ' local: ' + db.host + ':' + db.port); });
db.on('error', function(err) { console.log(err); });
return db; };

userModel.test.js

    var assert = require('assert'),
        should = require('should'),
        conn = require('../db/mongooseTest'),
        UserModel = require('../user/userModel');
describe('User Model', function() { describe('Save', function() {
it('Saving...', function() { var db = conn(); var Model = db.model('User'); var userModel = new Model({ name: 'My Name', email: 'contact@com.br', pass: 'anything123' });
userModel.on('save', function(user) { console.log('Passed by save event handle from user'); });
userModel.save(function(err, user) { console.log('Passed by save from user'); if(err) console.log(err); console.log(user); }); }); }) })

userModel.js

    var mongoose = require('mongoose'),
        crypto = require('crypto'),
        Schema = mongoose.Schema;
var setPass = function(value) { var salt = 'anyRandomSaltValue'; this.set('salt', salt); var pass = hashPass(value + salt); return pass; }
var hashPass = function(value) { return crypto.createHash('sha1').update(value).digest('HEX'); }
var userSchema = new Schema({ name: { type: String, required: true }, email: { type: String, required: true, unique: true }, pass: { type: String, required: true, set: setPass }, salt: { type: String, required: true } });
userSchema.method({ validatePass: function(senha) { var salt = this.get('salt'); var passSha = hashPass(senha + salt); return passSha === this.get('senha'); }, });
userSchema.static({ findByEmail: function(email, success, error) { this.findOne({ email: email }, function(e, o) { if(e) { if(error) error(e); } else { if(success) success(o); } }); }, });
module.exports = mongoose.model("User", userSchema);

问题是...当我运行 "mocha" 来执行单元测试时,保存函数的回调未被执行。

感谢您的阅读!

1个回答

7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接