2017-05-25 94 views
0

我正在編寫一個Ionic應用程序並對代碼內部進行測試。我有一個example,這是非常有幫助的。但我使用其他的東西,如地理位置或Loading Controller爲我的功能,我不知道我應該如何嘲笑他們。比如我提供.spec.tsIonic 3x:單元測試,模擬默認控制器

{ provide: LoadingController, useClass: LoadMock }

,但我不知道我應該怎樣提供(該類型和數據)。錯誤日誌尤其沒有意義。我應該在這裏提供加載控制器的例子。它有方法:創建,呈現和解僱。

export class LoadMock { 

    public create(): type??? { 
     return what??? 
    } 

    public present(): type??? { 
     return what??? 
    } 

    public dismiss(): type??? { 
     return what??? 
    } 
} 
+0

** **什麼取決於如何** **它在測試設備的使用。答案和問題一樣好。 – estus

+0

@estus我在哪裏可以看到我應該傳遞並返回什麼? –

+0

你在哪裏使用LoadingController。 – estus

回答

0

這一切都取決於你如何在你的代碼中使用這些組件。舉例來說,如果你有這樣的事情

let loading = this.loadingCtrl.create({ 
    content: 'Please wait...' 
}); 

loading.present(); 

this.getData().then(data => { 
    // Do something 
    loading.dismiss(); 
}); 

present()dismiss()不需要返回任何東西,因爲返回值被忽略。 create()應返回一些功能present()dismiss()

所以一個嘲笑LoadingController可能是這個樣子

export class LoadingMock { 

    public create(): any { 
    return new LoadingMock; 
    } 

    public dismiss(): any {} 

    public present(): any {} 
}