我一直在使用Jest来模拟一些变量,这些变量用在经过测试的函数中,如下所示:

global.SERVER_URL = 'test';
await hydrateApp();
expect(ReactDOM.hydrate).toBeCalled();

在这里, SERVER_URL的新设置值由hydrateApp() 但是,我不能使用module来做到这一点。 当我尝试设置module.hot时,在调用该函数时它将仍然是未定义的:

global.module.hot = {
  accept: jest.fn()
};
await hydrateApp();
expect(global.module.hot.accept).toBeCalled();

在这种情况下, module.hothydrateApp()未定义。

如何在要测试的函数使用的模块对象上设置变量?

  ask by András Geiszl translate from so

本文未有回复,本站智能推荐:

1回复

如何测试jest模拟模块

// utils.jsvar someModule = require('someModule');someModule.setKey('API_KEY'); 我想测试setKey功能。 所以我写了下面的单元测试用例。jest.mock('someModule, () => { retur
1回复

用Jest和@std/esm模拟节点模块

我目前在为使用@std/esm的节点应用程序编写测试时遇到问题。 我已经在__mocks__目录中设置了一个节点模块的手动模拟,以下代码显示了使用该模拟节点模块的文件测试。 (在db.mjs中使用) 但是,当我运行Jest时,没有使用手动模拟,而是使用了真正的节点模块。 是否有人对为
7回复

如何使用Jest模拟ES6模块导入?

我想测试我的一个ES6模块调用特定方式的另一个ES6模块。 有了茉莉花,这非常容易—— 应用代码: 和测试代码: Jest 的等价物是什么? 我觉得这是一件很简单的事情,但我一直在努力弄清楚。 我最接近的是用require替换import s,并将它们移动到测试/函数中。 两者都不是我想做的事情。
1回复

如何使用Jest模拟第三方模块

我的测试目标中有当前导入: 并在我的同一测试目标中使用它: 在我的测试中,我在下面做了模拟尖锐的功能: 但我得到了: 有没有办法我们可以使用Jest功能模拟所有Sharp模块功能?
1回复

如何模拟和测试使用Jest包装模块函数的方法?

我编写了一个函数,它使用pushover-notifications模块通过 Pushover 发送通知。 它看起来像这样: 我想模拟p.send(msg, (error, result)以便触发它下面的代码块,该代码块要么记录[Pushover] An error occurred.或[Pusho
1回复

使用Jest导出匿名函数的模拟模块值

我正在尝试测试从另一个具有奇怪导出结构的模块导入的模块。 我在 node 和 jest 中使用 javascript 进行测试。 这基本上是导出和测试的代码结构。 我想要一个解决方案,它允许我模拟奇怪模块.js 返回的内容,并且还能够模拟它以便它返回不同的值。 我有许多针对不同分支的测试,所以我需要
1回复

使用Jest模拟节点模块时出现类型错误

在这里,我有一个发送电子邮件的文件 mail.js 我正在尝试进行 Jest 测试,并且需要模拟 nodemailer 和 mailGun 函数,因此每次运行测试时都不会收到电子邮件。 所以我创建了一个__mocks__文件夹,并将我的 2 个模拟模块放在__mocks__/nodemailer.j
1回复

使用Jest从节点模块导入模拟函数的正确方法

我正在学习Jest,看来这应该很简单,但是我想念树木的森林不胜枚举,不胜感激。 我正在使用Jest测试Express路由。 快递航线在文件/routes/index.js并且它们每一个调用相应的逻辑功能在一个文件中/logic/index.js 。 routes和logic目录在同一级别