私はこれに優雅な解決策を見つけました。私は以下のようなJSONオブジェクトの私のparams
をインポート:
global.DATA_PATH = './data/environment.json';
global.fs = require(fs);
exports.config = {
...
params: {
data = require(global.DATA_PATH)
}
...
};
その後、私のJSONオブジェクトに、私はそうのようなデータを定義します:
{
"variable1": "blah"
}
を今、私は通常のオブジェクトのドット表記を通じて自分のデータにアクセスすることができます私のコードで:
this.modifyVariable1 = function(value) {
params.data.variable1 = value;
}
これは単にパラメータの変数params.data.variable1
を変更するので、私はnodejsモジュールを使用して、ファイルとそれを同期しますafterAll
10:スペックが行われたときのparamsオブジェクトへの変更は、各it
声明を通じて持続するので
afterAll(function() {
global.fs.writeFile(global.DATA_PATH, (JSON.stringify(params.data), null, 4), 'utf8);
});
にのみ実行する必要があります。
これは、これと似たようなものを試してみたいと思っている人に役立ちます。
しかし、すべてのテストを実行しても元々のものに戻されることはありませんか?突然EAN13のバーコードはもはやユニークではないため、私はテストを実行するたびにどのバーコードを使用するかを推測しなければならないので、これはうまくいかないでしょう。 – esiroky
あなたは正しいです、それはテストが完了した後も持続しません。 process.env.somevariableもこの永続性を持たないでしょう。この値をファイルに保存するのはどうですか? – Grasshopper
私はこれを考えましたが、これを何らかの方法で見つけられませんでした。インスタンス化されていないグローバル変数を定義し、ヘルパー関数を定義してJasmineのbeforeEachまたはafterEach関数で呼び出す必要がありますか? – esiroky