Angular 2 を使用して、いくつかのサービスをセットアップしました。内部の各メソッドは、次のような異なる http リクエストを返します。
public create(user:User): Observable<any> {
return this.http.post(this._apiUrls.create,
JSON.stringify(user), {
headers: this.apiConfig.getApiHeaders()
});
}
この方法をテストしたいと思います。リクエスト URL、ヘッダー、およびユーザーをテストしています。私は URL 部分に少し行き詰まっています。実際の URL をテストすることはできますが、それが GET、POST などであるかどうかをテストする方法がわかりません。Angular 1 では、expectGET や expectPOST などを使用しました。これは私がこれまでにやっている方法です:
beforeEachProviders(() => [
MockBackend,
BaseRequestOptions,
provide(Http, {
useFactory: (backend, defaultOptions) => new Http(backend, defaultOptions),
deps: [MockBackend, BaseRequestOptions]
}),
ApiConfig,
Authentication
]);
it('Should make a request to login a new user', inject([Authentication, MockBackend], (service, mockBackend) => {
let connection;
connection = mockBackend.connections.subscribe(c => connection = c);
service.create(setUser()).subscribe((res) => {
expect(connection.request.url).toBe(service.apiConfig.getApiRoot()+'api/identities/login');
expect(connection.request._body).toEqual(JSON.stringify(setUser()));
});
connection.mockRespond(200);
}));
リクエストのタイプを取得する方法はありますか? それとも、私はそれを間違っていますか?