が、私は、非同期/のawait甘使用するためには、このような何かを約束するために、HTTP観測を変換したデータサービスがあります。HttpTestingControllerで約束をテストするには?角度2アプリケーションで
async getCustomer(id: number): Promise<Customer> {
return await this._http.get<Customer>(`${this.serverUrl}/customer/${id}`).toPromise();
}
をこれが動作していると見て、素晴らしい作品。
私の以前のユニットテストは、しかし
mockBackend.connections.subscribe(c => {
expect(c.request.url).toBe(`${serverUrl}/customer/${id}`);
let response = new ResponseOptions({ body: mockResponseBody });
expect(c.request.method).toBe(RequestMethod.Get);
c.mockRespond(new Response(response));
});
let actual = await service.getCustomer(id);
ようなものでMockBackend
を使用し、私は
httpMock = TestBed.get(HttpTestingController);
// ... 1
let actual = await service.getCustomer(id);
// ... 2
でこのような何かをしようとすると、今私は鶏と卵の状況に取得しています。 getCustomer
メソッドは、嘲笑されたリクエストが提供されるまで返されず、http呼び出しがトリガーされるまでhttpMock.expectOne
またはを使用することはできません。私は、[1]にhttpMock
コールを置けば
だから、私は期待は失敗しそうだ、と私は[2]、私はタイムアウトエラーを取得しています:(
にそれを置く場合を回避する方法はありますこの?
ありがとう、それは私のばかだった。 Kindaは約束がそれ自身の価値であることを忘れていました:) – SWeko