1
我正在測試一個函數,使一個HTTP請求(返回一個觀察),然後調用observables訂閱方法中的另一個函數的Angular 4組件。我想測試訂閱中的函數是否正確調用。該組件是這樣的:一個函數返回一個可觀察的間諜
logIn(): void {
this.loginService.logIn(user)
.subscribe(() => {
this.router.navigateByUrl('/')
})
}
我嘲笑了服務組件的規格:
loginServiceStub = {
logIn(user: User) {
return Observable.of(true)
},
}
而且我已經附上間諜到路由器和登錄服務來了解他們是否有被稱爲:
const logInSpy = spyOn(loginService, 'logIn')
const navigateByUrlSpy = spyOn(router, 'navigateByUrl')
當調用組件登錄法,logInSpy被調用,但navigateByUrlSpy是不是和訂閱方法沒有運行。我應該如何設置模擬登錄才能使其工作?