Typescript 为全局对象创建模拟
我使用Office.js库和TypeScript为Microsoft Office编写了一个外接程序。我正在使用Jest对其进行单元测试 我遇到了Typescript 为全局对象创建模拟,typescript,jestjs,office-js,Typescript,Jestjs,Office Js,我使用Office.js库和TypeScript为Microsoft Office编写了一个外接程序。我正在使用Jest对其进行单元测试 我遇到了@types/officejs声明类型定义的问题,其中所有内容都位于全局对象office和Word之后。我似乎无法为它们编写一个伪/模拟实现,因为它们与类型定义冲突。我也不能在@microsoft/officejs上直接导入或使用Jest mock,因为它不是一个真正的模块-它是由浏览器在脚本标记中加载的。当我运行Jest时,它不会解析我的新全局名称空
@types/officejs
声明类型定义的问题,其中所有内容都位于全局对象office
和Word
之后。我似乎无法为它们编写一个伪/模拟实现,因为它们与类型定义冲突。我也不能在@microsoft/officejs
上直接导入或使用Jest mock,因为它不是一个真正的模块-它是由浏览器在脚本标记中加载的。当我运行Jest时,它不会解析我的新全局名称空间-ReferenceError:Word未定义
以下是我需要完成的简化视图:
// __mocks__/word.ts
//@ts-ignore
export namespace Word {
// stuff
}
// __tests__/something.ts
it('should find Word', () => Word...);
我如何才能创建我的假货/模拟,以便测试调用?嗯,我又试了一件事 我把
(全局)。Word=Word;
在word.ts的底部,事情似乎很愉快
(<any>global).Word = Word;