为全局创建模拟



我使用 Office.js 库和 TypeScript 为 Office 编写了一个Microsoft加载项。我正在使用Jest对其进行单元测试。

我遇到了@types/office-js声明类型定义的问题,其中所有内容都在全局对象OfficeWord后面。我似乎无法为这些编写假/模拟实现,因为它们与类型定义冲突。我也不能直接在@microsoft/office-js上导入或使用 Jest mock,因为它不是一个真正的模块 - 它旨在由浏览器加载到脚本标签中。当我运行 Jest 时,它不会解析我的新全局命名空间 -ReferenceError: Word is not defined.

以下是我需要完成的工作的简化视图:

// __mocks__/word.ts
//@ts-ignore
export namespace Word {
// stuff
}
// __tests__/something.ts
it('should find Word', () => Word...);

如何创建假货/模拟,以便测试呼叫?

好吧,我又尝试了一件事。

我把

(<any>global).Word = Word;

word.ts的底部,事情似乎很幸福。

最新更新