Угловой 4, модульное тестирование - PullRequest
0 голосов
/ 16 мая 2018

У меня есть один компонент, который состоит из одного метода, который внутренне вызывает службу, и мне нужно выполнить модульное тестирование для него.

Component.ts:

constructor(
    private formUtils: MeasureFormService,
}

getList() {
    this.formUtils.getList()
        .subscribe((data) => {
            this.memberDetails = data.MemberDetails;
            this.chaserDetails = data.RelatedChaserDetails;
        }, error => {
        });
}

MeasureFormService.ts:

getList() {
    return this._httpWrapperService.Get('../../../../../assets/json/overread-accept.json')
    .map((data: any) => {
        return data;
    });
}

Мне нужно провести модульное тестирование метода компонента, который вызывает службу.

1 Ответ

0 голосов
/ 16 мая 2018

Попробуйте это.

describe('Test', () => {

  let component: NotificationComponent;
  let fixture: ComponentFixture<YourComponent>;
  let measureFormService: MeasureFormService;
  let mockMeasureFormService;
  let listSubject;

  beforeEach(async(() => {

    listSubject = new Subject < any > ();
    mockMeasureFormService = {
      getList: () => {
        return listSubject;
      }
    };

    TestBed.configureTestingModule({
      declarations: [YourComponent],
      providers: [{provide: MeasureFormService, useValue: mockMeasureFormService}]
    }).compileComponents();

    fixture = TestBed.createComponent(YourComponent);
    component = fixture.componentInstance;
    notificationService = TestBed.get(NotificationService);
  }));

  it('should have a list of objects you need', () => {
    component.getList();
    listSubject.next(//just put a test object you are getting from the service);
    fixture.detectChanges();
    expect(component.memberDetails).toEqual(//service response);
  });

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