鑑於我有方法裝飾器,例如是否有可能模擬打字稿裝飾?
class Service {
@LogCall()
doSomething() {
return 1 + 1;
}
}
是否有可能嘲笑在單元測試@LogCall
裝飾,所以它不會被應用或與嘲笑邏輯應用?
我正在尋找任何打字稿裝飾的通用解決方案,因爲它是可能更新您的裝飾檢查window.disableLogDecorator
標誌或在測試過程中關閉它,但這不是可重用的解決方案。
我們使用的情況下,當然,比例如,在更爲複雜的規定 - 我們有適用於ngrx/store
選擇所以他們只在特定狀態的部分更新稱爲@memoizeSelector
。由於我們在測試中模擬狀態,@memoizeSelector
打破了我們的測試,所以我們希望禁用它。
是的,這是可能的,但你需要模擬導出裝飾器的模塊。你可以使用你的模塊加載器來做到這一點,只要它足夠靈活。例如,SystemJS可讓您輕鬆完成此操作。請記住,裝飾器只是一個功能。 –