【发布时间】:2017-03-06 03:41:29
【问题描述】:
我正在为我的 angular2 组件创建单元测试用例。
到目前为止,测试用例运行正常。
但我遇到了关于异步调用的问题。
例如。我有以下创建新用户的方法,如果用户已经存在,则会引发错误:
onSubmit():Observable<any> {
this._userService.saveUser(this.user).subscribe(
(response) => {
this._directoryService.getDirectoryById(this.selectedDirectory._id).subscribe(
(directory) => {
this.users = directory[0].users;
},
(error) => {
return error;
}
);
},
(error) => {
return error;
}
);
return ;
}
在我的服务中,我使用以下方法抛出错误:
if (alreadyExist) {
let error = "user already exist in database";
return Observable.throw(error);
}
现在我期待这个方法会抛出错误:
expect( function(){ app.onSubmit(); } )
.toThrow(new Error("User already exist in database"));
现在根据我的理解,这个测试用例应该是成功的,但是在我的测试用例失败后我得到了以下错误:
预期函数会引发异常。
我尝试了多个期望块:
expect(app.onSubmit()).toThrowError(new Error("User already exist in database"));
但仍然没有取得任何成功。
任何输入?
谢谢
【问题讨论】:
标签: javascript angular jasmine angular2-testing