私の Node アプリでは、次のような構成ファイルを用意します。
module.exports = {
BUILD_DIR: '/some.path',
OTHER_CONFIG: 42,
// ...
};
私はまた、次のようなことを行ういくつかのテストを持っています
var appConfig = require('./path/to/appConfig');
appConfig.BUILD_DIR = 'tmp/some/path';
// and stuff done with appConfig
驚いたことに、これを行うと明らかにモジュールの状態が変更されます。それを必要とする次のテストではBUILD_DIR
、「tmp/some/path」に設定されます。モジュールがrequire全体でこの種の状態を持っていることに気づきませんでした。テストでこの影響を取り除くにはどうすればよいですか? また、このモジュールの状態を変更できないようにするにはどうすればよいですか? 誰かがそれをインクルードする場合、他のコードがそれに書き込んだものではなく、常にそれが定義するものを取得する必要があります。