我发现了一个优雅的解决方案。导入我的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