如何在 mongodb 中模拟 document.save() 的错误?

Dur*_*rai 2 mongoose mongodb node.js express

DB:Mongo ODM:我使用 Mongoose 作为 ODM。

我正在为我的应用程序编写 document.save() 函数的负面测试。如何在保存文档时模拟或复制错误,以便我可以相应地断言。

const CreateArtist = async (artist) => {
    try {
        await dbConnect();
        const user = await new Artist(artist);
        await user.validate();
        return await user.save(); // want to test for error on save.
    } catch (err) {
        throw err;
    }
};
Run Code Online (Sandbox Code Playgroud)

我曾尝试更改连接字符串,但出现连接字符串错误错误。我不确定如何在保存时复制错误。

D__*_*___ 5

您可以尝试编写一个返回错误的预保存函数:

user.pre('save', function(next) {
    return next(new Error('myCustomError'));
});
user.save() // throws myCustomError
Run Code Online (Sandbox Code Playgroud)

改编自此处的文档