問題タブ [spy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2480 参照

javascript - sinon.js を使用して事前定義されたオブジェクトをスパイする方法

sinon.js で window.document をスパイしようとしています。私がすることはこれです:

この呼び出しに期待することは次のとおりです。document.getElementById が引数「foo」で呼び出された場合、関数は「bar」を返す必要があります。私のエラーは何ですか?

このように getElementById を自分で定義すると、期待される結果が得られます。

0 投票する
1 に答える
1209 参照

javascript - 動的関数バインディングでテスト スパイを使用するための適切なアプローチ

$.proxy(this, 'methodName')オブジェクトのメソッドを DOM イベントのイベント ハンドラーとして使用しています。

spyOnテストに関しては、コールバックが発生するかどうかを監視するためにJasmine を使用したいと思います。ただし、リスナーがオブジェクトのコンストラクター内にアタッチされているため、メソッドをスパイするまでには手遅れであり、未加工のスパイされていない関数は既に によって使用されてい$.proxyます。

これに取り組むための良いアプローチは何ですか? 私が検討したことの 1 つは、プロトタイプのメソッドを直接スパイすることですが、これが他のテストとは独立している各テストに与える影響について心配しています。もう 1 つの方法は、コードでリスナーをアタッチする方法を変更することですが、これは赤ちゃんを風呂の水で捨てるようなものです。

0 投票する
1 に答える
2966 参照

mockito - スーパークラスのプライベートメンバーのモック/スパイ

BaseClassテストメソッドにjunitテストを書いています。このメソッドは、スーパー クラス メンバーを使用します。コンストラクターはをBaseClass呼び出しますsuper(arg1, arg2)。super(arg1, arg2) コンストラクターには、スーパー クラスのプライベート メンバーを設定する依存性インジェクターがあります。テストを実行しているとき、依存関係が設定されていないため、super() が例外をスローしています。依存性注入でプライベートメンバーを設定しているsuper()のステートメントのみをモックしたい。モキットをどうするか?

0 投票する
1 に答える
452 参照

angularjs - オブジェクトの構築中に呼び出されるコントローラー メソッドをスタブ化する方法

refresh()構築中に独自のメソッドを呼び出す AngularJs コントローラーがあります。問題のメソッドは、単体テスト中に存在しないいくつかのテンプレート要素にアクセスします。

refresh メソッドを使用すると、コントローラーの構築中に単体テストが失敗します。それが行う作業はテストとは無関係であるため、メソッドをスタブでオーバーライドして、メソッドが呼び出されたことを単純にテストしたいと思います。

Jasmine の Spy 機能は進むべき道のように見えますが、オブジェクトを構築する前にそれを設定する方法が見つかりません。どうすればいいですか?

0 投票する
2 に答える
3007 参照

android - Robolectric buildActivity() と Mockito スパイ?

Robolectric のライフサイクル ユーティリティ ( Robolectric.buildActivity().

buildActivity()は Activity オブジェクトの構築を制御するため、Activity のスパイを追加する唯一の場所は、 を呼び出した後buildActivity()です。ただし、スパイは事後に追加すると正しく機能しません。

これは、やActivityController などのライフサイクル メソッドの副作用をスパイする場合に特に当てはまります。これは、ActivityController が後で追加されたスパイではなく、「実際の」Activity オブジェクトへの参照を保持しているためだと思います。create()start()resume()

Robolectric を介してライフサイクル メソッドを呼び出すときにスパイが適切に動作するように、Robolectric で単体テストされているアクティビティをスパイする方法はありますActivityControllerか?

0 投票する
0 に答える
762 参照

window - Windows 8でahkウィンドウスパイをフリーズする方法

私のWindow Spyは「Shift-Alt-Tabで表示をフリーズします」と言いますが、ShfitAltTabはすべてのウィンドウを最小化します。Windows 8 で autohotkey の Window Spy をフリーズするにはどうすればよいですか?