在TypeScript

时间:2016-08-04 05:31:23

标签: typescript

我使用karma进行单元测试,protractor使用模拟后端进行e2e测试。

对于这些测试,有一些文件用于模拟Web API的响应。在JavaScript中看起来像这样,它适用于浏览器上下文(karma)和node.js上下文(量角器)。

var mockResponse = {...};
if (typeof module !== 'undefined' && module.exports) {
    module.exports = mockResponse
}

但是,我无法找到使其在TypeScript中运行的方法。

这适用于集中输出(--out),其中mockResponse是全局变量。

let mockResponse: ResponseDto = {...};

为了让它在CommonJS(--module commonjs)中运行,我需要以这种方式编写它。

export let mockResponse: ResponseDto = {...};

我的问题是,有没有办法编写这个文件,支持两种情境?提前谢谢。

我找到了解决方案。感谢@basarat的建议,而不是使用集中文件,将测试文件编译为CommonJS模块,并使用karma-commonjs插件加载这些模块。

1 个答案:

答案 0 :(得分:0)

  

这适用于集中输出(--out),

不要使用它。原因有很多:https://basarat.gitbooks.io/typescript/content/docs/tips/outFile.html

而是为节点和浏览器使用commonjs模块(使用类似webpack的东西)。

更多

浏览器快速入门:https://basarat.gitbooks.io/typescript/content/docs/quick/browser.html