как написать тесты на сервис в угловых - PullRequest
0 голосов
/ 23 апреля 2019

Ниже указана Angular7 Http служба

    import { Injectable } from '@angular/core';
    import { HttpClient, HttpHeaders } from '@angular/common/http';
    import { Observable } from 'rxjs';
    import { map, retryWhen, retry } from 'rxjs/operators';

    import { AddCustomer as Transaction} from '../../module/model/add-Customer.model';


    const httpOptions = {
    headers: new HttpHeaders({
     'Content-Type':  'application/json'
    })};

    @Injectable({
     providedIn: 'root'
    })
    export class CustomerService {
     constructor(private http: HttpClient) { }
     public addCustomer(newTransaction: Transaction): Observable<Transaction> 
    {
     console.log(newTransaction);
     return this.http.post<Transaction>('', newTransaction, httpOptions)
    }

Но не уверены, как написать тесты для этой службы.

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

Как описано в документации Angular , самый простой способ протестировать сервис - это просто создать экземпляр вашего сервиса как любой другой экземпляр класса. (Услуги - это легкие классы ... но не компоненты).

describe('MasterService without Angular testing support', () => {
  const client= new HttpClient(null);
  spyOn(client, 'get').and.returnValue(Observable.of(response));
  let service: CustomerService = new CustomerService(client);

Вы также можете использовать утилиты тестирования Angular, как предложил Tzannetos Philippakos. Необходимо протестировать компоненты, а также сэкономить некоторые усилия по настройке.

TestBed.configureTestingModule({
    imports: [HttpClientTestingModule],
    providers: [CustomerService ]
});
0 голосов
/ 23 апреля 2019

вы можете использовать

TestBed.configureTestingModule({
    providers: [ MyService ]
});

const myService = TestBed.get(MyService);

для запуска ваших тестов на myService.

Если у вашего сервиса есть зависимости, вам нужно включить их и в массив поставщиков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...