подписаться на сервисный метод, не охватывающий юнит тест-кейс - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь написать контрольный пример для метода подписки. проверяемый код

Когда я тестирую с

ng test --code-coverage true

Тестовый пример проходит, но в отчете о покрытии кода метод подписки не рассматривается

npm run sonar-scanner

Может ли кто-нибудь помочь с этим?

1 Ответ

0 голосов
/ 05 марта 2019

Создайте фиктивную службу и внедрите ее как провайдера в component.spec.ts:

import { of } from 'rxjs';
export class MockService{

  validate(){
    return of()
  }

  queryUser(){
    return of({username: 'myUser'})
  }

}

, а затем введите как

providers : [
  {provide: YourActualService , useClass: MockService}
]

и затем протестируйте ее как:

it('should initilize user name',()=> {
    component.token = "123";
    fixture.detectChanges();
    expect(component.uname).toBe('myUser')
})

useClass заменит ваш service компонента нашим MockService, в котором мы возвращаем наблюдаемое, используя of()

...