私はAngular2コンポーネントでエラー処理をテストしたいので、サービスをモックしてObservable.throw( 'error')を返すようにしたいとします。 JasmineとKarmaとAngular 2を使って、どうすればいいですか?Angular2テストでObservable.throwをモックできますか?
3
A
答えて
5
あなたはcreate
を観察可能にして、オブザーバーerror
を呼び出してください。たとえば、
let mockService = {
error: false,
data: 'something',
getData:() => {
return Observable.create(observer => {
if (this.error) {
observer.error(new Error(..))
} else {
observer.next(this.data);
}
observer.complete();
})
}
}
あなたのテストでは、成功のケースとエラーケースの両方でモックを使用できます。エラーの場合は、error
プロパティをtrueに設定するだけです。成功の場合、next
がデータとともに呼び出されます。 observer.next
、observer.error
、observer.complete
を呼び出すとき
あなたが観測可能に加入
は、次の3つのコールバック、success
、
error
、および
observer
とそう
complete
service.getData().subscribe(
(data) => {} // sucess
(error) => {} // error
() => {} // complete
)
を渡すことができ、対応するコールバックが呼び出されます。
+0
私はこれで少し問題があります。それは私がプロパティを "true"に設定したというテスト宣言、つまり "それ"ですか?プロパティを "true"に設定すると、変更がテスト宣言で取得されません。設定しています。これが役立つ場合は、コードをplnkrに置くことができます。 – bmd
0
Observable.throw({status:404})のようなObservableのエラーオブジェクトを単純にモックして、観測可能なエラーブロックをテストできます。
const xService = fixture.debugElement.injector.get(SomeService);
const mockCall = spyOn(xService, 'method')
.and.returnValue(Observable.throw({status: 404}));
関連する問題
- 1. テストでAngular2トークンをモックしようとしています
- 2. サブクラスでスーパークラス呼び出しをモック/テストできますか?
- 3. サンプルコード:angular2でモックを作る
- 4. angular2でhttp.getをモックする方法
- 5. テスト目的でSpringブートでDB接続をモックできますか?
- 6. AをBモックでコンストラクタパラメータとしてモックできますか?
- 7. Spring MVCコントローラのmockitoテストでサービスレイヤーをモックできません
- 8. SpringブートサービスのテストでJdbcTemplateをモックできません
- 9. Dでioctlをモックできますか?
- 10. 単体テストでboto3 sns呼び出しをモックできますか?
- 11. Clojureテストでのデータベースのモック
- 12. テストでのモックの使用
- 13. クライアントライブラリをテストのモックに置き換えますか?
- 14. KerberosTicketインスタンスをモックできますか?
- 15. ユニットをrhinoモックで汎用テストする
- 16. モックなしで$リソースをテストする
- 17. junitテストでDateFormatクラスをモックする
- 18. テスト用モックfs.readdir
- 19. 分度器のE2Eテストでサービスをモック
- 20. angular2テストを書いてモックの戻り値を変更する - それをDRYにしますか?
- 21. なぜテスト中にデータをモックするのですか?
- 22. モックとテストMvvmCross NavigationService
- 23. Rhinoのモック - CTORテスト
- 24. インストルメンテーションテストでスタティックメソッドをモックできません
- 25. ReadableStreamをangular2ユニットテストでhttpバックエンドをモックして取得する
- 26. Angular2 + e2eテスト - by.idを使用できません
- 27. Angular2でEventEmitterをテストする方法はありますか?
- 28. テスト用のメソッドをモック
- 29. インポートされたモジュールをecmascript 6でモックできますか?
- 30. RhinoMockモックでプロパティ値を保持できますか?
コード例を教えてください。あなたの質問に文脈を追加するには、私たちが正確な答えを出すことができます。 – Supamiu