javascript - 如何使用 Jest 模拟非默认导入

标签 javascript unit-testing testing jestjs

如何模拟正在导入到包含我正在测试的函数的文件中的函数?

没有把它放在 mocks 文件夹中。

// FileIWantToTest.js
import { externalFunction } from '../../differentFolder';

export const methodIwantToTest = (x) => { externalFunction(x + 1) }

我需要确保 externalFunction 被调用并使用正确的参数调用。

看起来 super 简单,但文档没有介绍如何在不模拟测试中所有文件的模块的情况下执行此操作,方法是将模拟放在 mocks 文件夹中。

最佳答案

解决方案:我需要在任何测试或任何其他函数之外进行我的 jest.mock 调用,因为 jest 需要提升它。同样对于像我这样的命名导出,我还必须使用以下语法:

jest.mock('../../differentFolder', () => ({
  __esModule: true,
  externalFunction: jest.fn(),
 }));

关于javascript - 如何使用 Jest 模拟非默认导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53288067/

相关文章:

javascript - 在 JavaScript 的子构造函数中引用父构造函数属性

c# - C# 中使用 ILogger 进行单元测试静态方法 ILoggerFactory 为 Null

c++依赖注入(inject)来测试类系统调用的类

c# - 模拟复杂的第 3 方库

testing - 单元、功能、验收和集成测试之间有什么区别?

javascript - FormArray 中的嵌套 FormGroup 重复所有单选按钮值 - Angular(带有 PrimeNG 的 UI)

javascript - 如何检查jquery或javascript中的父元素是什么类型的节点或类/id?

javascript - CryptoJS 和 openssl_decrypt 不会产生相同的结果

c# - 我应该将私有(private)方法提取到单元测试类吗?

datetime - 时间和日期解析的测试数据(多种格式)