I am trying to unit testing my code where I am getting the below error
TypeError: Cannot read property 'setNumber' of undefined
this is my service method for that
setNumber(number) {
this.number = number;
}
This code is there in ts
this.dataService.setNumber(null);
This is my spec code.
beforeEach(async(() => {
const spyDataService = jasmine.createSpyObj('DataService', ['setNumber'])
TestBed.configureTestingModule({
imports: [HttpClientTestingModule, MatDialogModule, BrowserAnimationsModule, RouterTestingModule, MatMenuModule, MatFormFieldModule, MatInputModule, MatPaginatorModule, MatTableModule, MatSortModule, MatIconModule, MatCardModule,],
declarations: [DashboardComponent],
providers: [
{ provide: DataService, useValue: spyDataService },
{ provide: MAT_DIALOG_DATA, useValue: {} },
{ provide: MatDialogRef, useValue: {} },
{ provide: LayoutUtilsService, useValue: {} }
],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
it('should be create data service', () => {
expect(service.setNumber).toHaveBeenCalledWith(null);
});
What is wrong here why I am getting this error
TypeError: Cannot read property 'setNumber' of undefined
expect(service.setNumber).to//..., but haven't declared the variableserviceanywhere? Or is something still missing? - mbojko