переменная компонента внутри nginit, как ожидается, будет определена, но она не определена - PullRequest
1 голос
/ 15 мая 2019

Я запускаю тест на угловое приложение.Я высмеял http get call и покраснел от dummydata.Я ожидаю, что переменная, которая ожидает, что эти dummydata будут определены, или напечатает эту переменную.Я вижу, это не определено.Надеюсь, что фрагмент кода ниже дает ясное представление

машинопись

ngOnInit() {
    this.data = [];
    this.getData()
    .subscribe(res => {
        if (res['status'] == "FAILURE") {
         ....
        } else {
          this.data = res['data'] as Array<something>;
        }
      }, (err) => {
        console.log(err);
      }
    );
  }

 getData(): Observable<something[]> {
    return this.http.get<something[]>('/api/getData');
  }

export class something {
    id: number;
    name: string;
}

spec

mockheader=
[
      ['id', 'id'],
      ['name', 'name'],
]
it('should define data', () => {
    let spyOndata=spyOn(component,'ngOnInit').and.callThrough();
      var dummyFinancial : Array<something>;
      dummydata = [
        {
          id:"gdg"
          name:"xys"  
        }
      ];
      component.headers=mockheaders;
      //fixture.detectChanges();
      const req = httpMock.expectOne('/api/getData');
      expect(req.request.method).toBe("GET");
      req.flush(dummydata);

      console.log(component.data);//nothing prints
      expect(component.data.length).toBe(1);//fails
      expect(component.data).toEqual(dummydata);//fails


  });

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