1
私のコンポーネントのngOnInit()で、私はUserService約束の呼び出しを行うgetAllUsersメソッドを呼び出しています。私は単にこのテストを作りたい:カルマが約束を含む空白を待つ
getAllUsers() {
this._userService.getAllUsers().toPromise().then(
data => {
this.users = data["users"]
}, error => {}
)
}
と私MockUserServiceに私はgetAllUsersを(持っている:このようなgetAllUsersと
ngOnInit() {
this.getAllUsers()
}
:
it('should get initialized', async(inject([MockBackend], (backend: MockBackend) => {
spyOn(component, "getAllUsers")
component.ngOnInit()
expect(component.getAllUsers).toHaveBeenCalled()
expect(component.users).not.toBeNull()
expect(component.users.length).toBe(2)
})))
は、だから私のコードで私はこれを持っています)そのように:
getAllUsers(): Observable<any> {
return Observable.of({
"success": true,
"users": [ User.testUser(), User.testUser() ]
})
}
事は私のコードのいくつかの点でいくつかのconsole.infoを置くことです、そして、私は期待ラインがcomponent.getAllUsersの中に入る前に呼ばれることがわかります。
ngOnInit()が完了するのを待つ方法はありますか?ありがとう!
ありがとうございました!不思議なことに、それはgetAllUsersの中に入っているようにも見えません。私は 'this.getAllUsers()'の直前にロガーを入れ、getAllUsers()の最初の行に1つを入れて、これも印刷されませんでした。 – Guigui
getAllUsers () ''は2つのパラメータを期待していますが、ここに 'params'を送信していません。それはあなたにエラーを投げているはずです。 –
申し訳ありません私は間違っていることができないものを削除する必要があることを簡素化しようとすると、私の側でstackoverflowのものを置く間違いです。 – Guigui