0

モジュールが必要で、それをグローバルとして保存すると、以下に示すように、モジュールのメソッドとプロパティを上書きできることがわかりました。

global.passwordhelper_mock = require("helpers/password")
sinon.stub(passwordhelper_mock, "checkPassword").returns true

その後、それ自体が上記のスタブ方式を利用する別のモジュールが必要な場合は、私のスタブバージョンが使用されます。

node.jsの関数はこれらのグローバルにどのようrequireに注意を向けますか?グローバルとして保存されたモジュールを上書き/スタブした場合にのみ機能するのはなぜですか?

ありがとう

4

1 に答える 1

0

node.js の require 関数は、これらのグローバルにどのように通知しますか?

someObject をグローバルに利用できるようにするには、モジュール内のどこかで module.exports.someObject = function(x) {...} を呼び出す必要があります。

グローバルとして保存されたモジュールを上書き/スタブした場合にのみ機能するのはなぜですか?

私がここに従うかどうかはわかりません。オブジェクトが非表示の場合、上書きできません。グローバル オブジェクト (例: console) または実行時に使用可能な任意のオブジェクトのプロパティ (例: console.log) のいずれかの、使用可能な任意のオブジェクトを上書きできます。

于 2012-11-16T14:41:10.197 に答える