我發現了一個優雅的解決方案。導入我的params
在一個JSON對象,象下面這樣:
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與文件同步,它10 afterAll
:
afterAll(function() {
global.fs.writeFile(global.DATA_PATH, (JSON.stringify(params.data), null, 4), 'utf8);
});
這隻需要在規範做是因爲更改params對象堅持通過每個it
語句運行。
希望這可以幫助那些想嘗試類似的人!
但是,一旦所有測試運行,參數是否會重置回原來的狀態?這是行不通的,因爲EAN13條碼突然不再是唯一的了,我必須推斷每次運行測試時使用哪個條碼。 – esiroky
你是對的,測試完成後它不會持續。 process.env.some變量也不會使這永久。如何將這個值存儲在文件中? – Grasshopper
我確實想到了這一點,但我無法找到任何方式以任何方式做到這一點。我應該定義一個沒有實際意義的全局變量,然後定義一個輔助函數並在Jasmine的beforeEach或afterEach函數中調用它? – esiroky