我尝试将mockgoose(2.0.3)与mongoose(4.0.2)一起使用,这样我就可以在没有mongo服务器的情况下运行我的单元测试。
据我所知,我正确使用它
import mockgoose from "mockgoose";
import mongoose from "mongoose";
let mongooseMock = mockgoose(mongoose);
然后我将mongoose实例传递给调用模式的模块
但是当我进行测试时,我得到了
{ [MongoError: mock: connect failed] name: 'MongoError', code: 13328 }
我完全不知道为什么,它应该只是开箱即用。
答案 0 :(得分:3)
我刚遇到同样的问题。您必须在mongoose#connect(url)
之后但在运行任何测试之前致电mockgoose(mongoose)
。
更具体地说,我创建了一个新模块
var mockgoose = require("mockgoose");
var mongoose = require("mongoose");
mockgoose(mongoose);
mongoose.connect("mongodb://localhost/test");
module.exports = mockgoose;
和require
它位于每个使用mockgoose的测试文件的顶部。我没有尝试使用es6语法,但我认为无论您使用的是connect
还是require
,主要问题仍然是调用import
。
答案 1 :(得分:1)
事实证明这与mockgoose的版本有关。当我应该使用最新的官方版本时,我正在使用最新的实验版5.0.0-rc.5
。