1
私はこのサービスを使用して、観察可能なエラーストリームにアイテムを追加することをテストします。私は、サブスクリプション・コールバックが実際に呼び出されたことを確認するためにcalled
変数を使用観測される観測可能なストリームのユニットテストの正確な方法
it('can be subscribed for errors',() => {
let testError = new Error('Some error.');
let called = false;
let subscription = service.onError.subscribe(error => {
called = true;
expect(error).toEqual(testError);
});
/// This makes an error to be added to onError stream
service.setError(testError);
expect(called).toEqual(true);
});
。さもなければテストは合格しません。しかし、それは私にとって正しいとは思わない。また、ストリームが非同期の場合は動作しません。
これはテストするのに適した方法ですか?そうでない場合は、正しく行う方法は?
EDIT:これはテストされているクラスです。それは実際にタイコである。
import { ReplaySubject } from 'rxjs/Rx';
export class ErrorService {
private error: Error;
public onError: ReplaySubject<Error> = new ReplaySubject<Error>();
constructor() {
}
public setError = (error: Error) => {
this.error = error;
console.error(error);
this.onError.next(error);
}
public getError() {
return this.error;
}
public hasError() {
return !!this.error;
}
}
あなたが作業しているプログラミング言語を示すタグを追加する必要があるかどうか疑問に思っています... – GhostCat
@GhostCat okありがとう –
あなたもテストしようとしているメソッドを投稿できますか? – KwintenP