我有以下结构:
|服务器 |分贝 |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”来执行我的单元测试时,没有执行保存函数的回调。
谢谢大家!