当前位置: 首页 > 知识库问答 >
问题:

在每个测试文件之前进行Jest异步设置

沈长恨
2023-03-14

我必须在开玩笑的每个测试文件之前做一个异步设置(特别是每次启动一个MongoMemoryServer)。

  1. 使用setupFiles不工作,因为不处理异步工作。传递全局Promise不起作用,因为我必须在需要我的db模块之前设置db uri字符串(我不想在等待Promise后嘲笑它,那很糟糕)。
  2. 官方指南使用testUNEP并使用globalSetup设置mongo服务器。奇怪的是,医生说

注意:测试环境是沙盒。每个测试套件将在其自己的测试环境中触发设置/拆卸。

但事实并非如此,因为设置和拆卸是全球性的。

测试同时运行,我需要在每个文件中插入文档,这会导致写入错误。

这么多人使用Node/MongoDB/jest堆栈,而我却遇到了这么多问题,这让我感到震惊。

无论如何,谢谢你!

共有1个答案

钮瀚
2023-03-14

您混淆了TestUNEP安装/拆卸方法(将在每个测试文件之前/之后执行)和Jest运行程序的globalSetup/globalTeardown(将在所有测试之前/之后执行)。

 类似资料:
  • 问题内容: react:16.3.0-alpha.1 jest: “22.3.0” enzyme: 3.3.0 typescript: 2.7.1 码: 测试: 错误: 问题答案: 解: 1:使用异步/等待语法。 2:使用安装座(不浅)。 3:等待异步组件生命周期。 例如:

  • 问题内容: 任何人都可以告诉我如何在安装调用组件时开玩笑地等待一个模拟的诺言解决吗? 将在我的笑话嘲笑测试 然后是我的测试文件: 问题是我正在返回,因为尚未进行模拟的api调用和生命周期方法。 问题答案: Jest有模拟假冒时间旅行的方法,要在您的情况下使用它,我想您可以按照以下样式更改代码: 另外,您也可以使用

  • 我正在尝试用Jasmine和RequireJS做一些测试。一切都进行得很好,直到我注意到我所描述的函数的上下文出现了问题。 有人知道怎么解决这个吗?

  • 我使用Jest框架,并有一个测试套件。我想关闭/跳过我的一个测试。 谷歌文档并没有给我答案。 你知道要查的答案或信息来源吗?

  • 问题内容: 我正在用React Native构建一个应用程序。我想尽量减少与数据库通信的频率,因此我大量使用了AsyncStorage。虽然在DB和AsyncStorage之间的转换中存在很多错误的余地。因此,我想通过对它运行自动化测试来确保AsyncStorage拥有我相信的数据。令人惊讶的是,我还没有找到有关如何在线进行操作的任何信息。我自己尝试做的尝试还没有完成。 使用笑话: 此方法失败,并

  • 我有一个异步函数,我想同时测试成功和失败。函数成功时返回一个字符串,失败时抛出。我在测试失败上失败得很惨。下面是我的代码: 我通过注释失败的代码并在注释中添加结果来禁用 正如你所看到的,什么都不起作用。我相信我的测试几乎是第一个失败测试的Promises示例和最后一个失败测试的Async/Await示例的完全副本,但是没有一个可以工作。 我相信与Jest文档中的示例的不同之处在于,它们展示了如何测