使用Mocha超时错误进行架构测试

时间:2017-11-29 00:08:46

标签: node.js mongodb testing mocha schema

这是我的架构:

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

//INDEX PAGE SCHEMA
const IndexSchema = new Schema({
  bio: String
});
const IndexPageData = mongoose.model('indexpagedata', IndexSchema);
module.exports = IndexPageData;

这是我的摩卡代码:

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

// Describe our tests
describe('Saving records', function(){

  // Create tests
  it('Saves a record to the database', function(done){

var index = new IndexPageData({
  bio: 'Mario ENTER BIO HERE'
});

char.save().then(function(){
  assert(char.isNew === false);
  done();
});

});

});

`

每次我运行此操作时都会收到错误消息 “错误:超出2000ms超时。对于异步测试和挂钩,确保调用”done()“;如果返回Promise,请确保它解析。”

mongoDB已经在后台运行,所以我不知道是什么导致了这个问题。

1 个答案:

答案 0 :(得分:0)

我认为你有两种选择。

  1. 添加catch
  2. 设置超时
  3. 我通常会将它们都插入我的代码中。

    // Add catch 
    describe('Saving records', function(){
      // Create tests
      it('Saves a record to the database', function(done){
    
        var index = new IndexPageData({
            bio: 'Mario ENTER BIO HERE'
        });
    
        char.save().then(function(){
            assert(char.isNew === false);
            done();
        }).catch(done);
      });
    });
    
    // Add time out
    describe('Saving records', function(){
    
      // Create tests
      it('Saves a record to the database', function(done){
        this.timeout(3000); // milli seconds
        var index = new IndexPageData({
            bio: 'Mario ENTER BIO HERE'
        });
    
        char.save().then(function(){
            assert(char.isNew === false);
            done();
        }).catch(done);
      });
    });