2016-10-10 2 views
1

Я пишу приложение в угловом2, и я хочу издеваться над файлом, который на данный момент не готов.Angular2 как издеваться над проектом для разработки

Это моя служба:

import { Injectable } from '@angular/core'; 
import { Http, Headers, Response, RequestOptions } from '@angular/http'; 
import { Observable } from 'rxjs/Observable'; 

import { Item } from './item'; 

@Injectable() 
export class ItemService { 

    private itemUrl = 'api/item'; // URL to web api 

    constructor(private http: Http) { } 

    getItems(): Observable<Item[]> { 
     return this.http 
      .get(this.itemUrl) 
      .map(this.extractData) 
      .catch(this.handleError); 
    } 

    addItem(name: string): Observable<Item> { 
     let body = JSON.stringify({ name }); 
     let headers = new Headers({ 'Content-Type': 'application/json' }); 
     let options = new RequestOptions({ headers: headers }); 

     return this.http.post(this.itemUrl, body, options) 
      .map(this.extractData) 
      .catch(this.handleError); 
    } 

    private extractData(res: Response) { 
     let body = res.json(); 
     return body.data || {}; 
    } 

    private handleError(error: any) { 
     let errMsg = 'error'; 
     return Observable.throw(errMsg); 
    } 
} 

И я хотел бы перехватывать каждый запрос, который сделан на «itemUrl» в моей машинописи коде и делать простые операции на обычном список.

ответ

1

Возможно, вы должны использовать angular-in-memory-web-api. См. Пример this post. Также проверьте the documentation. В конечном итоге использование этого, вероятно, сэкономит вам больше времени, чем попытка использовать Angular's MockBackend. Вы можете использовать in-memory-web-api как для тестирования модульного тестирования , так и.

+0

Как насчет того факта, что angular-in-memory-web-api является «экспериментальным и не предназначен для использования в производстве»? –

+1

@RuiMarques, почему вы хотите использовать его для производства? Это действительно только для разработки и демонстрации. –