2016-08-04 50 views
0

我使用karma進行單元測試,使用protractor進行e2e測試,並使用模擬後端。在TypeScript中爲模塊和集中文件使用相同的文件

對於這些測試,有一些文件用於模擬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插件來加載這些模塊。

回答

相關問題