【发布时间】:2020-09-19 17:05:00
【问题描述】:
我正在尝试对出现以下错误的代码进行单元测试
TypeError: 无法读取未定义的属性“setNumber”
这是我的服务方法
setNumber(number) {
this.number = number;
}
这段代码在ts里面
this.dataService.setNumber(null);
这是我的规范代码。
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);
});
这里有什么问题,为什么我会收到此错误
TypeError: 无法读取未定义的属性“setNumber”
【问题讨论】:
-
等一下,你
expect(service.setNumber).to//...,但还没有在任何地方声明变量service?还是缺少什么?
标签: angular jasmine karma-jasmine