私はangle2コンポーネント用のユニットテストケースを作成しています。私のメソッドが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"));
は、このテストケースは成功するはずですが、私のテストケースが失敗した後、私はエラーの下に取得しています:
Expected function to throw an exception.
私は、複数のブロックを期待してみました:
expect(app.onSubmit()).toThrowError(new Error("User already exist in database"));
が、それでもすべての成功を得ていません。
任意の入力?およそObservable.throw
おかげ
コールバックでエラーをチェックしている...しかし、その私のインスタンス変数の一つがundefined..thoughtである私はアプリとしてそれを初期化していると言って。 edit = false.errorは: '未定義のプロパティ編集を読むことができません.'です。 @peeskillet –
あなたは問題を再現する_complete、minimal_ testを投稿できますか? –