我有以下结构:
|服务器 |分贝 |mongooseTest.js |测试 |userModel.test.js |用户 |userModel.js
使用他们的代码:
mongooseTest.js
var 猫鼬 = 要求('猫鼬');
module.exports = 函数() {
var db = mongoose.createConnection('localhost', 'dbUnitTest');
db.on('已连接', function() {
console.log('DB:' + db.name + '本地:' + db.host + ':' + db.port);
});
db.on('错误',函数(错误){
控制台日志(错误);
});
返回分贝;
};
userModel.test.js
var 断言 = 要求('断言'),
应该 = 要求('应该'),
conn = require('../db/mongooseTest'),
UserModel = require('../user/userModel');
描述('用户模型',函数(){
描述('保存',函数(){
it('正在保存...', function() {
var db = conn();
var Model = db.model('User');
var userModel = 新模型({
名称:'我的名字',
电子邮件:'contact@com.br',
通过:'anything123'
});
userModel.on('save', function(user) {
console.log('由用户保存事件句柄传递');
});
userModel.save(函数(错误,用户){
console.log('由用户保存传递');
如果(错误)console.log(错误);
控制台.log(用户);
});
});
})
})
用户模型.js
var 猫鼬 = 要求('猫鼬'),
加密 = 要求('加密'),
Schema = mongoose.Schema;
var setPass = 函数(值){
var salt = 'anyRandomSaltValue';
this.set('salt', salt);
var pass = hashPass(value + salt);
回程通行证;
}
var hashPass = 函数(值){
return crypto.createHash('sha1').update(value).digest('HEX');
}
var userSchema = new Schema({
姓名: {
类型:字符串,
要求:真
},
电子邮件: {
类型:字符串,
要求:真,
唯一:真
},
经过: {
类型:字符串,
要求:真,
设置:setPass
},
盐: {
类型:字符串,
要求:真
}
});
userSchema.method({
验证通行证:函数(senha){
var salt = this.get('salt');
var passSha = hashPass(senha + salt);
return passSha === this.get('senha');
},
});
userSchema.static({
findByEmail:函数(电子邮件,成功,错误){
这个.findOne({
电子邮件:电子邮件
},函数(e,o){
如果(e){
如果(错误)错误(e);
} 别的 {
如果(成功)成功(o);
}
});
},
});
module.exports = mongoose.model("用户", userSchema);
问题是......当我运行“mocha”来执行我的单元测试时,没有执行保存函数的回调。
谢谢大家!