gpt4 book ai didi

unit-testing - 测试 Mongoose Node.JS 应用程序

转载 作者:IT老高 更新时间:2023-10-28 23:02:55 25 4
gpt4 key购买 nike

我正在尝试为我的部分 Node 应用程序编写单元测试。我正在为我的 ORM 使用 Mongoose。

我搜索了很多关于如何使用 Mongoose 和 Node 进行测试的方法,但没有提供任何东西。解决方案/框架似乎都是全栈的,或者没有提到 mock 的东西。

有没有一种方法可以模拟我的 Mongoose DB,以便在我的测试中返回静态数据?我宁愿不必建立一个测试数据库并为每个单元测试填充数据。

有没有其他人遇到过这种情况?

最佳答案

我也去寻找答案,结果到了这里。这就是我所做的:

我开始使用 mockery模拟我的模型所在的模块。然后创建我自己的模拟模块,每个模型都将其作为属性悬挂。这些属性包装了真实模型(以便测试代码存在子属性)。然后我重写了我想为测试操作的方法,比如保存。这具有 mock 能够撤消 mock 的优势。

但是……

我不太关心撤消模拟来为每个模型编写包装器属性。所以现在我只需要我的模块并覆盖我想要操作的功能。如果出现问题,我可能会在单独的进程中运行测试。

在我的测试安排部分:

// mock out database saves
var db = require("../../schema");
db.Model1.prototype.save = function(callback) {
console.log("in the mock");
callback();
};
db.Model2.prototype.save = function(callback) {
console.log("in the mock");
callback("mock staged an error for testing purposes");
};

关于unit-testing - 测试 Mongoose Node.JS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7544659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com