2017-09-07 163 views
0

我有一個角度服務,我正在編寫單元測試,我正在測試的一個方法使用來自外部依賴的模塊變量,我在測試前嘲笑和注入BeforeEach運行。這些變量不是標準數組就是JSON,而在原始函數中,它們是基於服務依賴方法的輸出而被訪問的。嘲笑服務模塊角度單元測試的變量依賴關係

我嘲笑了使用jasmine createSpy和callFake的方法,我嘗試以相同的方式嘲笑這些變量的值,但它們以未定義的方式返回,並且測試因此失敗。

什麼是模擬這些變量值的最佳方法?

的變量,例如定義是這樣的:

var module = { 
    variableOne= [ a, b , c]; 
    variableTwo = {1, 2, 3}; 
}; 

,然後,我測試的服務方法,通過例如將其稱爲:

DependentService.variableOne[outputOfMockedDependencyMethod]; 

回答

1

在您的測試,當你注入服務,那麼你可以改變它:

it(
    'your desc', 
    inject([YourService], (service: YourService) => { 
    service.mockedValue = {/* all you want */}; 
    })); 
+0

這是在我正在測試的服務,或爲依賴注入Ÿ服務? Atm我在beforeEach中有一個獨立的依賴注入。如果是針對我測試的服務,那麼變量是否來自外部依賴關係是否重要? – bardsleyta

+0

那麼您是否需要您的服務單元測試方面的幫助。如果你在之前做過,那麼你可以做同樣的事情,我在這裏展示!我傾向於直接在測試用例中做這件事,因爲我通常會給我的服務多次模擬(測試每種可能的結果) – trichetriche

+1

好的。謝謝。我設法讓它工作:) – bardsleyta