在打字稿测试中模拟浏览器环境

时间:2018-03-26 21:06:19

标签: typescript testing

我有一组正在编译并运行浏览器窗口的打字稿文件。

然后,我想在Typescript中编写一组将在Node环境中运行的测试,这需要模拟任何窗口API。

我找不到一个干净的方法来使用Typescript,通常最后用

  

找不到名称'location'。

我尝试定义位置,但是当我声明接口而不是实例(我想在每个测试中存根)时仍然没有任何乐趣。

  

'location'仅指类型,但在此处用作值。

     

6 if(location.origin ===

关于如何/应该如何做的任何想法?

1 个答案:

答案 0 :(得分:0)

尝试在代码中使用window.location而不是location。 Typescript包含一个库(dom),它具有Window对象实现的类型window

lib.dom.d.ts文件的摘录:

interface Window extends EventTarget, WindowTimers, WindowSessionStorage, WindowLocalStorage, WindowConsole, GlobalEventHandlers, IDBEnvironment, WindowBase64, GlobalFetch {
...
readonly location: Location;
...
}

之后,我假设您可以模拟window对象。