Sinon: スタブグローバル変数

作成日 2019年01月07日  ·  3コメント  ·  ソース: sinonjs/sinon

テストおよび/またはモックしたいモジュールは、いくつかのグローバル変数を使用します。

たとえば、モジュールのソースコードは、変数sessionを参照します。この変数は、どこにも定義されていませんが、実行時に使用できます。

モジュールglobals.jsを考えてみましょう:

let globals = {
    contextName: "DATA_PIPELINE",
    reportContext: "report",
    session: session
};

module.exports = globals;

sessionはこのファイルでは定義されていませんが、実行時に使用できます。 これは環境のグローバル変数です(私の管理下にはありません)。

偽のタイマーを使用すると、setTimeoutなどのグローバル関数の実装を置き換えることができます。 これをグローバル関数/オブジェクトにどのように適用できますか?

全てのコメント3件

たぶんsinon.replace(object, prop, replacement)はあなたが探しているものですか?
https://sinonjs.org/releases/v7.2.4/sandbox/#sandboxreplaceobject -property-replacement

GitHubの問題リストを整理し、バグと機能の議論に焦点を当てようとしています。 このチケットは使用法の質問のように見えます。 StackOverflowに投稿し、 sinonのタグを付けてください。そうすれば、より大きなコミュニティがあなたの質問に答えることができます。

Node.jsでは、次のようなことができます。

global.session = sinon.stub();
// Proceed to import the modules that use the session global and run the tests
このページは役に立ちましたか?
0 / 5 - 0 評価