Как получить как положительные, так и отрицательные данные в шпионском классе Karma Jasmine Angular - PullRequest
0 голосов
/ 27 июня 2019
class HeroDetailServiceSpy {
  testHero: Hero = {id: 42, name: 'Test Hero' };

  /* emit cloned test hero */
  getHero = jasmine.createSpy('getHero').and.callFake(
    () => asyncData(Object.assign({}, this.testHero))
  );

  /* emit clone of test hero, with changes merged in */
  saveHero = jasmine.createSpy('saveHero').and.callFake(
    (hero: Hero) => asyncData(Object.assign(this.testHero, hero))
  );
}

Теперь, когда я вызываю метод getHero (), я получаю ответ testHero. Но в наблюдаемых есть как успехи, так и неудачи. Так что для успеха звоните, я получаю эти ответы. Но как мне за провал позвонить.

Поэтому, когда я вызываю getHero, он должен возвращаться с ошибкой, и это должно покрывать мой цикл сбоев в наблюдаемой

Ссылка: https://angular.io/guide/testing#service-tests

1 Ответ

0 голосов
/ 30 июня 2019

вы можете сделать это, используя throwError в самом файле спецификации component, например:

component.spec.ts


import { throwError } from 'rxjs';


it('should handle getHero() error response',()=>{
   spyOn(component.heroDetailService,'getHero').and.returnValue(throwError('error'));
   // do the testing and the service would return error 
})

...