Mongoose 使用Mockgoose时保存并创建挂起

Mongoose 使用Mockgoose时保存并创建挂起,mongoose,mocha.js,mockgoose,Mongoose,Mocha.js,Mockgoose,我试着用Mockgoose做测试。每当我在模型上调用.save或.create时,承诺都无法解决。我能够毫无问题地使用.find和.findOne。我不确定我是否设置了错误的东西,或者我是否误解了Mockgoose应该如何使用 我的测试设置为: test/mockgoose.js const mongoose = require('mongoose'); const { Mockgoose } = require('mockgoose'); const mockgoose = new Mock

我试着用Mockgoose做测试。每当我在模型上调用
.save
.create
时,承诺都无法解决。我能够毫无问题地使用
.find
.findOne
。我不确定我是否设置了错误的东西,或者我是否误解了Mockgoose应该如何使用

我的测试设置为:

test/mockgoose.js

const mongoose = require('mongoose');
const { Mockgoose } = require('mockgoose');

const mockgoose = new Mockgoose(mongoose);

mockgoose.helper.setDbVersion('3.2.1');
mongoose.Promise = global.Promise;

module.exports = {
    mockgoose,
    mongoose
};
model.test.js

const { mongoose, mockgoose } = require('../test/mockgoose');
let Model = require('../model.js');
let conn;

describe('something', function() {
     before(() => {
        return mockgoose.prepareStorage().then(() => {
            mongoose.connect('mongodb://127.0.0.1:27017/testingDB');
            return new Promise(resolve => {
                mongoose.connection.once('connected', () => {
                    conn = mongoose.connection;
                    Model = Model(conn);
                    // we pass the connection into every model because we have several connections
                    resolve();
                });
            });
        });
    });

    after(() => {
        mongoose.disconnect();
    });

    it('should save', function() {

        const modelInstance = new Model({'name': 'model name'});
        /* modelInstance looks correct, 
        I have plugins adding additional fields 
        and those are being added correctly at this point */

        return modelInstance.save().then(newModel => {
            /* console.log is never hit and mocha timeouts
            if I console.log modelInstance.save() 
            I can see it is a pending promise. */

            console.log(newModel);
            assert.equal(newModel.additionalField, 'a', 'field is added '); 
        });
    });
});

你解决了这个问题吗?没有,我还没有解决这个问题。我也遇到了同样的问题,在网上看看,似乎我们不是唯一两个有这个问题的人。您是否提交了GitHub问题?如果没有,我将在周末提交一份。项目负责人似乎很善于应对问题。啊!对不起,我花了这么长时间才回复。我还没有提交问题,你能做到吗?你听到回应了吗?