问题标签 [mockgoose]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
142 浏览

mongoose - 最初将文档插入数据库

我想用猫鼬测试一个快速应用程序。因此我使用 AVA 和 Mockgoose。

使用 AVA 的 beforeEach 挂钩,我想将两个文档插入到我的数据库中,然后我可以在测试中使用它们。

代码如下所示:

然后我进行了这个测试以确保上面的代码有效:

该测试也成功并且工作正常。在这个测试之后,我有另一个测试:

当我切换测试顺序时,第一个测试仍然有效,第二个测试失败。因此,对于第一个测试,我的数据确实存在,而对于第二个测试,它不存在。这是为什么?为什么它在第一次测试中起作用?

如果我将 afterEach 钩子更改为 after 钩子,它会起作用,但我认为这不是应该的方式吗?我认为应该在每次测试后而不是在所有测试后重置数据库。

似乎 beforeEach 钩子只在第一次调用它时创建我的用户,然后就不再工作了..

这是我的数据库助手:

0 投票
1 回答
467 浏览

node.js - 将猫鼬对象与对象进行比较时,摩卡测试挂起

我正在使用mochaand chai(with chai-as-promised) 并且我正在尝试使用mockgoose.

该模型:

被测代码:

测试代码:

问题是最后一个相等检查挂起摩卡:

当对一个非对象做同样的测试时,

摩卡咖啡只是正常失败。

0 投票
1 回答
483 浏览

javascript - 澄清 Mockgoose/Mongoose 的用法?

我目前注定要使用 Mockgoose/Mongoose 进行小型 NodeJS 演示,并且对它的目的和功能有一些疑问。

我知道 Mockgoose 是一个部署到内存的非持久性数据库,以避免实际的数据库,但它是否仍然提供关于存储和检索模型/文档的基本数据库功能?还是仅用于在没有基本数据库功能的情况下访问模式和模型?

例如,就将模型保存到 Mockgoose 中的数据库而言,此代码是否有任何影响?

然后我可以用它来检索它吗?

或者正如我之前所说,Mockgoose 的唯一目的是在没有任何基本数据库存储功能的情况下访问模式和模型?

0 投票
2 回答
1201 浏览

javascript - 运行 mockgoose.prepareStorage 时,Mockgoose 正在下载 234mb

我有一个节点应用程序可以访问 mongodb 抛出的 mongoose,并使用 mocha 和 mockgoose 进行了测试。我最近搬到了 mockgoose 7.0.5。我按照 github 上的入门指南将 mocha 超时时间提高到 2 分钟。

这是我的测试中的之前功能:

当我运行测试时,在这mockgoose.prepareStorage一步中,mockgoose 似乎正在下载一些东西。

我想这与请求的 2 分钟超时有关。

我的问题/问题是:

  • 有人知道 mockgoose 正在下载什么吗?(我不记得以前版本的 mockgoose 的这种行为)

  • mockgoose 在每次运行(npm test)时是否需要此下载,或者结果会在下一次运行(npm test)中重复使用?

  • 我可以阻止他下载东西吗?理想情况下,我想在沙盒环境中运行我的单元测试,而不能访问网络(在 docker 中)。我可以在某处下载 234mb 并要求 mockgoose 重用它吗?

谢谢

0 投票
1 回答
187 浏览

javascript - Mocha before function - 没有大括号错误的 lambda;带花括号的 lambda 有效

此代码使我的 mocha 测试通过而没有错误:

但是删除块中的花括号before会导致错误:

有谁知道为什么?如果需要更多的上下文,我可以答应。

0 投票
2 回答
6792 浏览

mongodb - Mongoose 聚合查询在 Jest/Mockgoose 测试中失败,在其他地方工作

我正在尝试为我的 Mongoose 模型创建一些测试,但我不知道如何让 Jest/Mockgoose 测试通过我为检索而创建的速记查询/聚合管道(见下文第一个代码块)一个集合中未在另一个集合中引用的随机文档。

开玩笑测试

沙盒节点 JS 代码:

当我在沙箱节点文件中尝试它时,wit 可以正常工作并检索典型的查询集,例如:

当我运行测试时,我得到了这个 MongoError:

我如何以在两种情况下都适用的通用方式解决此问题?如果可能的话,我希望该方法返回一个承诺。我已经尝试了链式聚合方法(见上文)和管道的更原生的 Mongo 聚合数组,但都返回错误。如果相关的话,我的 mongo 版本是 3.4.2。

0 投票
0 回答
423 浏览

mongoose - 使用 Mockgoose 时保存并创建挂起

我正在尝试使用 Mockgoose 进行测试。每当我打电话.save.create在模型上时,承诺都不会解决。我可以使用.find并且.findOne没有问题。我不确定我是否设置错误,或者我是否误解了 Mockgoose 的使用方式。

我的测试设置为:

测试/mockgoose.js

模型.test.js

0 投票
1 回答
3341 浏览

node.js - Chai http - 双重回调问题

我使用 chai-http 对我的 REST api 进行了正常的单元测试。它失败并出现以下错误

如您所见,rawResponse由于测试失败,因此重复。我调试了代码,控制器代码只被调用一次,输出正确。但无法理解为什么会发生此错误。

以下是测试代码

0 投票
1 回答
4840 浏览

mongodb - 如何在快速应用程序集成测试中使用 mockgoose(或任何其他数据库模拟)

在简单的单元测试中使用 mockgoose 非常简单。但是,对于如何在验收或集成测试中使用 mockgoose 或其他模拟解决方案,我有点模糊。

给定一个简单的 express/MongoDB 应用程序,如下所示:

和一个像这样的简单集成测试:

通过在请求中使用实际的应用程序,我们正在连接到应用程序的数据库('mongodb://localhost/test')。那么如何使用 mockgoose 或任何其他解决方案来模拟 MongoDB 数据库并仍然像上面显示的那样运行集成测试?

0 投票
1 回答
184 浏览

node.js - 未处理的承诺拒绝 17

我正在使用 mocha、mockgoose 和 chai 编写测试用例。在运行测试用例时,我会得到 unhandle Promise Rejections 17 错误。

UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:17):Mongod 正在关闭

处理 Promise Rejection 错误 17