Javascript 如何在typescript中模拟库函数调用?

Javascript 如何在typescript中模拟库函数调用?,javascript,typescript,mocking,jestjs,Javascript,Typescript,Mocking,Jestjs,我无法在typescript中模拟第三方函数调用。 第三方库是moment timezone,我想模拟代码,让浏览器时区来编写jest测试 下面是我需要模拟并返回字符串“Australia/Sydney”的代码 moment.tz.guess() 我试图将jest.mock()用作:- 以下是解决方案: index.ts: 从“时刻时区”导入时刻; 导出函数main(){ 返回力矩.tz.guess(); } 索引规范ts: 从“/”导入{main}; 从“时刻时区”导入时刻; mock('

我无法在typescript中模拟第三方函数调用。 第三方库是
moment timezone
,我想模拟代码,让浏览器时区来编写jest测试

下面是我需要模拟并返回字符串“Australia/Sydney”的代码

moment.tz.guess()
我试图将jest.mock()用作:-

以下是解决方案:

index.ts

从“时刻时区”导入时刻;
导出函数main(){
返回力矩.tz.guess();
}
索引规范ts

从“/”导入{main};
从“时刻时区”导入时刻;
mock('moment-timezone',()=>{
常数mTz={
猜:jest.fn()
};
返回{
tz:mTz
};
});
描述('main',()=>{
测试('应该模拟猜测方法',()=>{
(mockReturnValueOnce('Australia/Sydney');
const actualValue=main();
expect(jest.isMockFunction(moment.tz.guess)).toBeTruthy();
预期(实际价值)。托比(澳大利亚/悉尼);
期待(瞬间的猜测);
});
});
100%覆盖率的单元测试结果:

PASS src/stackoverflow/58548563/index.spec.ts
主要的
✓ 应采用模拟猜测法(6ms)
----------|----------|----------|----------|----------|-------------------|
文件|%Stmts |%Branch |%Funcs |%Line |未覆盖行|s|
----------|----------|----------|----------|----------|-------------------|
所有文件| 100 | 100 | 100 | 100 ||
index.ts | 100 | 100 | 100 | 100 ||
----------|----------|----------|----------|----------|-------------------|
测试套件:1个通过,共1个
测试:1项通过,共1项
快照:共0个
时间:5.828秒,估计19秒

您尝试过什么?介意发布一些示例吗?尝试使用jest.mock,但无法这样做。更新了上面的帖子。
jest.mock('moment-timezone', () => () => ({ guess: () => 'Australia/Sydney' }));