NodeJs,Mocha和Mongoose
我有以下结构:
|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);
问题是......当我运行“摩卡”来执行我的单元测试时,保存函数的回调没有执行。
谢谢大家!
问题通过以下方法解决 - https://github.com/joshmosh/node-mongoose-mocha-demo
我也发现这个解决方案 - https://github.com/elliotf/mocha-mongoose。 我没有尝试过,但看起来不错。
链接地址: http://www.djcxy.com/p/60679.html上一篇: NodeJs, Mocha and Mongoose
下一篇: Nexus 7 not visible over USB via "adb devices" from Windows 7 x64