MockService по-прежнему вызывает ошибку: не удается прочитать свойство «подписка» неопределенного - PullRequest
0 голосов
/ 02 сентября 2018

Я новичок в угловом тестировании. Итак, я следовал этому множественному взгляду .

Я получаю ту же ошибку

Невозможно прочитать свойство 'подписка' из неопределенного

независимо от того, что я делаю.

describe('AnnualReportComponent', () => {
   let fixture: ComponentFixture<AnnualReportComponent>;
   let mockReportService;
   let REPORTITEMS = [
     { id: 1, title: 'title 1' },
     { id: 2, title: 'title 2' },
     { id: 3, title: 'title 3' }
   ]

   beforeEach(() => {
    mockReportService = jasmine.createSpyObj('ReportService', ['getAnnualReport']);

    TestBed.configureTestingModule({
       imports: [FormsModule],
       declarations: [AnnualReportComponent], 
       providers: [
         { provide: ReportService, useValue: mockReportService }      
       ],
       schemas: [
         NO_ERRORS_SCHEMA
       ]
     });

     fixture = TestBed.createComponent(AnnualReportComponent);
     component = fixture.componentInstance;
   });  

    it('should create', () => {
      fixture.detectChanges(); 
      mockReportService.getAnnualReport.and.returnValue(of(REPORTITEMS));

        expect(component).toBeTruthy();
     });    
});

Это компонент

export class AnnualReportComponent implements OnInit, OnChanges {
  ngOnInit() {
     this.getAnnualReport();
  }

   getAnnualReport () {
      this.reportService
       .getAnnualReport(this.fiscalYear)
       .subscribe(item => {
          this.reportItems = item});
   }

}

Я получаю эту ошибку:

TypeError: Невозможно прочитать свойство 'subscribe' из неопределенного
at AnnualReportComponent.getAnnualReport (веб-пакет: /// C: /../AnnualReportComponent.component.ts?: 92: 13)
at AnnualReportComponent.ngOnInit (веб-пакет: /// C: /../AnnualReportComponent.component.ts?: 57: 14)

Это моя первая работа по Карме, но я не могу ее запустить. Я не знаю, пропустил ли я что-то.

Спасибо за помощь.

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