为全局创建模拟

时间:2018-06-27 20:03:58

标签: typescript jestjs office-js

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

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

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

// __mocks__/word.ts
//@ts-ignore
export namespace Word {
    // stuff
}

// __tests__/something.ts
it('should find Word', () => Word...);

如何创建假货/假货以测试电话?

1 个答案:

答案 0 :(得分:-1)

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

我放

(<any>global).Word = Word;

word.ts的底部,事情似乎很开心。