angular2 unit-test: kann nicht Lesen-Eigenschaft componentInstance.Methode() undefined

mycomponent.spec.ts-Klasse:

Dieser Fehler: Cannot read property 'ngOnInit' undefined.

let myComponent: MyComponent;
let myService: MyService;

describe('myComponent', () => {
   beforeEach(() => {
    TestBed.configureTestingModule({
      declarations: [MyComponent],
    providers: [
      {provide: MyService, useClass: MockMyService} //**--passing Mock service**
  ]
}).compileComponents()
  .then(() => {
    myComponent = TestBed.createComponent(MyComponent).componentInstance;
    myService = TestBed.get(MyService);
    console.log(myService.getData());
  });
});

it('should get the mock data', () => {
   myComponent.ngOnInit(); //-----------> seems like myComponent is not defined at this place, how to resolve this error 
   expect(myComponent.data).toBe(DATA_OBJECT);
  });
});

unten ist MyComponent:

@Component({
  selector: 'pm-catalogs',
  templateUrl: './catalog-list.component.html'
})

export class MyComponent implements OnInit {

 public data: IData[];

 constructor(private _myService: MyService) {

}

public ngOnInit(): void {
this._myService.getData()
  .subscribe(
    data => this.data = data
  // error => this.errorMessage = <any>error
  );
 }
}

unten ist mock-service

  export const DATA_OBJECT: IData[] = [
 {
   'Id': 1,
   'value': 'abc'
 },
 {
'Id': 2,
'value': 'xyz'
 }];

@Injectable()
export class MockMyService {
 public getData(): Observable<IData[]> {
    return Observable.of(DATA_OBJECT);
  }
}

Ich bin Neuling auf Angular2 testen, und ich will myService.getData zurück DATA_OBJECT wenn myComponent.ngOnInit () - Aufrufe myService.getData () - Methode in meiner Klasse Skillung
Bitte helfen Sie mir, Sie zu erreichen.

Der code in describe block ist schlecht eingerückt, es ist nicht klar, was dort Los ist.

InformationsquelleAutor DaenKhaleesi | 2017-05-15

Schreibe einen Kommentar