问题标签 [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 投票
3 回答
392 浏览

node.js - NodeJS mockgoose 保存模型似乎不起作用

尝试对我的小 api 进行单元测试,我需要测试保存错误和成功(已经注册等)。

目前这是我的代码: models/auth.js

测试/api.test.js

现在的问题是第一个console.log 说“数据库连接已打开!”,如果我在填写后对模型(userModel)进行控制台日志,它会正确记录,但我的问题在于保存。我不知道它是否保存,但内部没有控制台日志显示,失败或成功。

谁能告诉我我做错了什么?

谢谢

0 投票
0 回答
208 浏览

node.js - 在 docker 容器中创建与 Mockgoose 的数据库连接

我有两个 docker 容器,一个用于数据库,另一个用于 API。我正在尝试在 API 中进行一些测试,我需要使用 monckgoose。我可以成功地与 mongoose 建立连接,但我得到MongoError: Authentication failed。当我尝试通过 mockgoose 创建连接时。

url 是 --> mongodb://database/myDB其中数据库是 docker-compose.yml 选项参数中的服务的,只包含正确的用户和密码。

数据库日志显示以下信息:

有谁知道为什么我不能在prepareStorage中创建连接?

0 投票
0 回答
416 浏览

mongodb - mockgoose.helper.reset() 不删除数据库

我正在使用 Mocha 在 Node.Js 中创建单元测试。在这个应用程序中,使用了 MongoDB。为了模拟 MongoDB,我使用了 Mockgoose。以下是代码

这里mockgoose.helper.reset()不是删除数据库。

Mockgoose 版本是 7.3.5

0 投票
2 回答
9722 浏览

javascript - jest mockgoose - jest 在测试运行完成后一秒钟没有退出

我有一个猫鼬模型:

mockgoose以及使用and的简单单元测试jest

现在,当我运行测试时,我收到以下两个警告:

(节点:2199)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:1):ReferenceError:未定义完成(节点:2199)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。

然后单元测试通过,然后我收到以下错误消息:

测试运行完成后一秒钟,Jest 没有退出。

这通常意味着在您的测试中没有停止异步操作。考虑运行 Jest --detectOpenHandles来解决此问题。

得到正确结果后如何终止测试?

0 投票
0 回答
450 浏览

javascript - mongoose.model 在开玩笑测试后留下打开的句柄

我有以下模型:

并对此模型进行单元测试:

运行jest --detectOpenHandles打印出以下内容:

Jest 检测到以下 1 个可能阻止 Jest 退出的打开句柄:

● 承诺

为什么会发生这种情况,我该如何解决?

0 投票
2 回答
473 浏览

javascript - Jest Mockgoose Doc.save() 不能异步/等待

我在我的电子商务软件上使用 jest,所以我也可以在端到端测试时进行渲染测试(支持主题,这就是原因)。
但我目前只是在测试一些猫鼬功能,当我尝试保存文档时,它给了我这个错误: Error: Timeout - Async callback was not invoked within the 10000ms timeout specified by jest.setTimeout.

我注意到当我删除带有await doc.save();. 所以我认为它与async/await有关,但我找不到它。

包.json

globalSetupJest.js

Product.test.js

0 投票
1 回答
469 浏览

node.js - 使用 Mocha 和 Chai-Expect 使用 Mockgoose/Mongoose 保存/创建时超时

我正在超时运行单元测试MochaChai并且Mockgoose

我有一个功能Assessment.NewAssessment(assessmentDetails)可以将评估保存在数据库中。

注意:`Assessment.NewAssessment 返回一个承诺(它是一个异步函数)

这是我到目前为止所做的:

Assessment.js

运行的输出mocha --timeout 120000是:

我在这里做错了什么?

0 投票
0 回答
120 浏览

typescript - Mocha 和 Chai 给出了即使在被调用后也不调用 done() 的错误

我几乎没有测试 REST API 的测试用例,一切都在 Typescript 中。我也在使用 docker 来对我的应用程序进行 dockerize。我有 3 个容器,它们是 REST_API_app、MongoDB、api_testing_container。一旦创建了其他两个容器,我就会创建容器 api_testing_container,它使用为 REST_API_app 构建的相同映像。我也看过很多关于使用 --timeut 增加摩卡超时的帖子,但这不是我想要的,它在我的代码中也不起作用,我已经尝试过了。我的测试用例文件如下所示:

当我尝试运行上述测试用例时,它可以在没有 docker 的本地机器上完美运行,但是当我使用 docker-compose 创建所有三个容器时,它在测试容器中显示以下错误

我的 mongodb 模拟连接看起来像这样。当我将 console.log("test") 放在 mongoose.connect() 之前时,错误似乎在这个文件中,它不会打印它。