2017-08-24 63 views
0

的src/user.js的摩卡测试成功连接到我的数据库,但不保存情况

const mongoose = require('mongoose'); 
const Schema = mongoose.Schema; 

mongoose.Promise = global.Promise; 

const UserSchema = new Schema({ 
    name : String 
}); 

const User = mongoose.model('user', UserSchema); 

module.exports = User; 

测试/ test_helper.js

// DO SOME INITIAL SETUP FOR TEST 

const mongoose = require('mongoose'); 

mongoose.connect('mongodb://localhost/test', { useMongoClient : true }); 

mongoose.Promise = global.Promise; 

mongoose.connection 
    .once('open',()=> console.log('Good to go')) 
    .on('error',(error)=> { 
     console.warn('Warning',error); 
    }); 

测试/ create_test.js

const assert = require('assert'); 
const User = require('../src/user'); 
const mongoose = require('mongoose'); 

describe('Creating records',() => { 
    it('saves a user',() => { 
     const joe = new User({ name : 'Joe' }); 
     joe.save(); 
    }); 
}); 

当我试图保存实例在create_test.js,它不是在数据库中保存。但是当我在文件test_helper.js中保存一个实例时,它正在工作。有什么建议么?

回答

0

这是因为猫鼬打开后连接,测试运行。您需要使用挂钩,以保证连接打开。

before(done => { 
    mongoose.connect('mongodb://localhost/test', { useMongoClient : true }); 
    mongoose.Promise = global.Promise; 

    mongoose.connection 
    .once('open',() => done()) 
    .on('error', err => console.err('Db connection error', err); 
    }); 
}); 
相关问题