如何在 if 语句中测试函数 jasmin karma angular
how to test function inside if statement jasmin karma angular
我是单元测试的新手。
我有一个调用服务以显示学生列表的组件。
getListStudents() {
this.noteService.getStudents({}).subscribe(res => {
this.students= res
})}
然后我在 ngOnInit() 中调用这个函数
if(this.currentUser.Type == 'Teacher'){
this.getListStudents()
}
没有 if 语句,测试是正确的,但是有 if 语句,它就失败了
这是我的测试
it('should call the service getStudents', () => {
component.currentUser={ "Type": "Teacher"}
let mock = [{
"ID": 22,
"name": "paul"
}]
let service: NoteService = TestBed.get(NoteService);
spyOn(service, 'getListStudents').and.returnValue(of(mock));
fixture.detectChanges();
expect(component.students.length).toBe(1)
});
我收到错误 Cannot read 属性 'Type' of null 并且当我从 ngOnInit 中删除 if 语句时它按预期工作我做错了什么?
请给我一个解决方案来解决这个问题 problem.thank 你
使用同步测试,as shown in the docs
it('should call the service getStudents', fakeAsync(() => {
component.currentUser={ "Type": "Teacher"}
let mock = [{
"ID": 22,
"name": "paul"
}]
let service: NoteService = TestBed.get(NoteService);
spyOn(service, 'getListStudents').and.returnValue(of(mock));
fixture.detectChanges();
tick();
expect(component.students.length).toBe(1)
}));
我是单元测试的新手。 我有一个调用服务以显示学生列表的组件。
getListStudents() {
this.noteService.getStudents({}).subscribe(res => {
this.students= res
})}
然后我在 ngOnInit() 中调用这个函数
if(this.currentUser.Type == 'Teacher'){
this.getListStudents()
}
没有 if 语句,测试是正确的,但是有 if 语句,它就失败了
这是我的测试
it('should call the service getStudents', () => {
component.currentUser={ "Type": "Teacher"}
let mock = [{
"ID": 22,
"name": "paul"
}]
let service: NoteService = TestBed.get(NoteService);
spyOn(service, 'getListStudents').and.returnValue(of(mock));
fixture.detectChanges();
expect(component.students.length).toBe(1)
});
我收到错误 Cannot read 属性 'Type' of null 并且当我从 ngOnInit 中删除 if 语句时它按预期工作我做错了什么? 请给我一个解决方案来解决这个问题 problem.thank 你
使用同步测试,as shown in the docs
it('should call the service getStudents', fakeAsync(() => {
component.currentUser={ "Type": "Teacher"}
let mock = [{
"ID": 22,
"name": "paul"
}]
let service: NoteService = TestBed.get(NoteService);
spyOn(service, 'getListStudents').and.returnValue(of(mock));
fixture.detectChanges();
tick();
expect(component.students.length).toBe(1)
}));