データを保存する


const mocha = require('mocha');
const assert = require('assert');
const MarioChar = require('../models/mariochar');

describe('Some demo tests', function(){

    //Create tests
    it('Saves a record to the database', function(done){
        var character = new MarioChar({
            name: "Mario",
        })
        character.save().then(function(){
            assert(character.isNew === false)
            done();
        })
    })
})
character.save().then(function(){
        assert(character.isNew === false)
        done();
})
上記の関数はcharacterをデータベースに保存します.character.isNewは、オブジェクトが作成されるが、データベースに存在しないとき、trueを返します.
そして、オブジェクトがデータベースにあるとき、falseを返します.saveが非同期関数であるため、次のテストを実行するには、doneメソッドで終了したときに明示的に指示しなければなりません.

2 . Mogoose自身の約束を使う代わりにES 6を使う
const mongoose = require('mongoose');

// Using ES6 promise instead mogoose's promise
mongoose.Promise = global.Promise 

// Connect to mongodb
mongoose.connect('mongodb://localhost/testaroo');
mongoose.connection.once('open', function(){
    ...
}).on('error', function(error){
  ...  
})
この時点で、接続が確立される前でもテストが実行されています.
そのためには、beforeに接続コードを入れなければなりません
before(function(done){
     mongoose.connect('mongodb://localhost/testaroo');
    mongoose.connection.once('open', function(){
        console.log('Conneciton is made');
        done();
    }).on('error', function(error){
        console.log('Connection error', error);
    })
})
また、接続が確立されたときに明示的に実行するために完了しました.