2017-08-07 8 views
0

角度のあるエキスパート角2のHTTPスタブ

私のアプリケーションは単体テストで、少し実験しています。

具体的には、Httpオブジェクトを嘲笑するだけで、コンポーネントを実際のサービスでユニットテストしたいと思います。今私は自分でオブジェクトをスタブしようとしていますので、私はStubHttpクラスを下にしました。

角2:Verson 2.4.7 + Karma、Jasmine。

これはその簡易版である:私は私のコントローラにログを置く場合

let mockTest = '{"name":'John', // ...}; 

export class StubHttp { 
    public post(url: string, body: any, options?: RequestOptionsArgs) 
      :Observable<Response> { 
    let response = new ResponseOptions({body: JSON.stringify(mockTest)}); 
    return Observable.of(new Response(response)); 
    } 
} 

this.UsersService.getAll().subscribe((data: any) => { 
    console.log('data = ', data); 
}); 

とサービス:

getAll(event: LazyLoadEvent) { 
    return this.http.post(this.url + this.params, JSON.stringify(this.body),new RequestOptions({headers: this.header})) 
     .map(response => response.json()) 
     .catch(this.handleError); 
} 

これが出力されます。

LOG: 'data = ', Promise{} 

どこが間違いですか?

+0

it('Should show a list of 10 feed', inject([XHRBackend], (mockBackend) => { mockBackend.connections.subscribe((connection) => { connection.mockRespond(new Response(new ResponseOptions({ body: {id: 55} }))); }); // ... })); 
私は唯一のポストを参照してください、まだあなたは、コントローラのために示した例では、あなたは()のgetAllという名前のメソッドを呼び出します。 getAll()はHTTP POSTまたはGETを行いますか? –

+0

申し訳ありません!投稿が更新されました。 – Kasper

答えて