gpt4 book ai didi

node.js - 使用 Jest 模拟 namespace 和具有相同名称的函数

转载 作者:IT老高 更新时间:2023-10-28 23:27:31 25 4
gpt4 key购买 nike

我正在使用的库的结构为

declare namespace foo {
function bar();
};

declare namespace foo.bar {
function baz();
};

所以我需要模拟的两个函数是 foo.bar()foo.bar.baz()

模拟我之前使用的 foo.bar()

require('foo');

jest.mock('foo', () => ({
bar: () => mockedBar,
}));

有什么方法可以模拟 foo.bar.baz() 吗?我试过了

jest.mock('foo.bar', () => ({
}));

但它显示一条消息 Cannot find module 'foo.bar' from 'functions.test.js'

最佳答案

您可以在项目根目录的 __mocks__ 文件夹中为您的模块定义一个自定义模拟(在 jest config 中定义!)。因此,您可以使用模拟的 foo 模块函数创建 __mocks__/foo.js,并且 Jest 会自动加载此模块以进行测试。您还可以为您的模拟指定自定义路径:

jest.mock('foo', () => jest.requireActual('../some/another/folder/foo.js'));

检查 Jest manual了解更多信息

关于node.js - 使用 Jest 模拟 namespace 和具有相同名称的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45175599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com