我使用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
插件來加載這些模塊。
謝謝你的建議,原則幫助。 – Haocheng