私が単体テストをするとき、ゲッターはTypescriptのセッターですが、私はゲッタとセッターを偵察する方法を見つけることができません。代わりに、オブジェクトはすぐに評価されます。私はユニットテストにジャスミンを使用しています。Typescript getterとsetterをspyOnするにはどうしたらいいですか?
8
A
答えて
3
まだサポートされていませんが、supporting gettersのジャスミン問題があります。あなたは本当に今のサポートが必要な場合は、SpyRegistry.jsファイルを拡張し、apsillersが提案されていることを、コードを追加することができます
:
this.spyOnProperty = function(obj, methodName, accessType) {
...
var desc = Object.getPropertyDescriptor(obj, methodName);
if(desc[accessType]) { // "get" or "set" exists on the property
var spy = j$.createSpy(methodName, desc[accessType]);
desc[accessType] = spy;
Object.defineProperty(obj, methodName, desc);
}
}
2
私はこれらのゲッタとセッタを偵察する方法を見つけることができません。代わりに、オブジェクトはすぐに評価されます。
これはJasmineではサポートされていません。主なオプションは関数呼び出しにリファクタリングするかジャスミンを拡張することです
6
spyOnProperty
はジャスミンで利用可能になりました:
const foop = {
get value() {},
set value(v) {}
};
it('can spy on getter',() => {
spyOnProperty(foop, 'value', 'get').and.returnValue(1);
expect(foop.value).toBe(1);
});
it('and on setters',() => {
const spiez = spyOnProperty(foop, 'value', 'set');
foop.value = true;
expect(spiez).toHaveBeenCalled();
});
0
私は解決策を見つけましたここに役立つ。 getterを監視するのではなく、単にそれをオーバーライドしてテストの戻り値を変更します。
関連する問題
- 1. Typescript getter and setter error
- 2. getter/setterを削除してgetter/setterを削除する
- 3. ブール(setter-Getter)Cocos2D?
- 4. Actionscript 3.0 Setter - Getter
- 5. getterとsetterはより高速に動作しますか?
- 6. Objective-c setter/getterコールバック
- 7. actionscript strange getter/setter access
- 8. Actionscript 3.0 getter setter increment
- 9. pythonプロパティgetter/setter confusion
- 10. getter/setter vs "tell、do not ask"を使う?
- 11. POJOクラスの "is"変数getter/setterの正しい構文は何ですか?
- 12. C++のメンバ変数をバインドする:getter/setterまたはrawポインタ?
- 13. Javaの異なるパッケージからgetter setterを使用してオブジェクトに到達するにはどうすればよいですか?
- 14. JavaScriptで `getter`と` setter`が必要ですか?
- 15. AngularJS ng-model-options getter-setter
- 16. Spriteでgetter/setterメソッドを使用するときのエラー
- 17. getterとsetterにバッキング変数を使用する
- 18. プライベートフィールド用のgetterとsetterを提供するポイントは何ですか?
- 19. getterとsetterはmockito-flexを使用してmockedできますか?
- 20. ブールのgetterメソッドとsetter日食
- 21. Angular2でngModelまたはsetter/getterを使用してフォームコントロールWIHTOUTを更新するにはどうすればよいですか?
- 22. spring-rooのxx.javaからsetter getterをxx_Roo_JavaBean.ajに変更できますか?以下
- 23. getterとsetterを割り当てることができるプロパティはどの言語にありますか?
- 24. Eclipseのgetterとsetterに対するコメントの自動生成
- 25. getter/setterを使用しないTDD動作テスト
- 26. Pythonでgetter、setter、deleterを自動的に設定する
- 27. iOS - getter/setterメソッドを直接またはプロパティで使用する方が良いですか?
- 28. カスタムバインドを強制的にインナークラス作成またはgetter/setter for xs:element
- 29. そのプロパティのgetter/setter内からプロパティ名を取得する方法は?
- 30. 私はJavaでクラスを持っていると私はそれがjavabean(それらのgetterメソッドとsetterメソッド)にしたい場合はJavaBeanのルール(セッターとゲッターメソッド)
https://stackoverflow.com/questions/20879990の重複 –