Mad*_*dhu 5 jasmine typescript karma-jasmine angular angular-unit-test
我在编写组件方法测试用例时遇到问题。
如何在其内部和内部测试 Angular 组件方法if else块。subscribe((res) => { ///block}ToasterService
我在我的 component.ts 文件中调用了 Angular 服务方法。在服务呼叫内subscribe(response=>{}。
我已经验证了块中的响应值if else,并根据结果显示烤面包机消息,但我的业力报告说:response=> function not covered并且if else块内未声明未涵盖。
组件.ts
constructor(private userService: UserService,
private toastr: ToastrService) { }
sortUsers(sortKey: string) {
this.userService.getSortUserList(sortKey).subscribe((res) => {
if(res.Success){
this.userService.users = res.Data as User[];
}else{
this.toastr.error(res.Message);
}
});
}
Run Code Online (Sandbox Code Playgroud)
组件规格
it('call sortUser when users are sorted', () => {
const users: User[] = [{
User_Id: 1,
First_Name: 'Madhu Ranjan',
Last_Name: 'Vannia Rajan',
Employee_Id: 12345,
Project_Id: 1,
Task_Id:1,
_id: 'xcv'
}];
component.sortUsers('First_Name');
const res = {Success: true, Data: users}
spyOn(service, 'getSortUserList').and.returnValue(of({Success: true, Data: users}));
});
Run Code Online (Sandbox Code Playgroud)
期待茉莉花也测试以下块:
subscribe((res) => {
if(res.Success){
this.userService.users = res.Data as User[];
}else{
this.toastr.error(res.Message);
}
});
Run Code Online (Sandbox Code Playgroud)
业力报告:
尝试
constructor(
public userService: UserService,
public toastr: ToastrService) {
}
Run Code Online (Sandbox Code Playgroud)
并在规范文件中:
it('call sortUser when users are sorted with success', () => {
const users: User[] = [{
User_Id: 1,
First_Name: 'Madhu Ranjan',
Last_Name: 'Vannia Rajan',
Employee_Id: 12345,
Project_Id: 1,
Task_Id:1,
_id: 'xcv'
}];
const res = {Success: true, Data: users}
spyOn(component.userService, 'getSortUserList').and.returnValue(of(res));
spyOn(component.toastr,'error').and.callThrough();
component.userService.users = undefined;
component.sortUsers('First_Name');
expect(component.userService.users).toBeDefined()
expect(component.toastr.error).not.toHaveBeenCalled()
});
it('call Error Toaster in sortUser() when users are sorted', () => {
const res = {Message: 'error_msg'}
spyOn(component.userService, 'getSortUserList').and.returnValue(of(res));
spyOn(component.toastr,'error').and.callThrough();
component.userService.users = undefined;
component.sortUsers('First_Name');
expect(component.userService.users).not.toBeDefined()
expect(component.toastr.error).toHaveBeenCalledWith('error_msg')
});
Run Code Online (Sandbox Code Playgroud)
由于您是新手,karama我强烈建议您阅读这篇文章,其中包含在底部页面处理 Angular 单元测试的文章集。
| 归档时间: |
|
| 查看次数: |
11253 次 |
| 最近记录: |