gpt4 book ai didi

Javascript require() 多次测试文件不会再次创建对象

转载 作者:行者123 更新时间:2023-12-02 21:39:32 25 4
gpt4 key购买 nike

我正在使用 mocha 为 javascript API 编写一些测试。我在运行测试之前启动了我的项目,并且我意识到需要一个文件在多个测试中创建一个对象,例如如下所示:

    it('should return false 1', () =>  {
const testObject = require(./file.json)
delete testObject.neededAttribute1;
expect(function(testObject)).to.be.false;
});

it('should return false 2', () => {
const testObject = require(./file.json)
delete testObject.neededAttribute2;
expect(function(testObject)).to.be.false;
});

Javascript 不会在第二个测试中创建对象 testObject ,而是使用第一个测试中之前所做的更改,如果我不手动恢复该对象,那么我的测试将无法使用测试执行后发生了变化。

我知道 JavaScript 这样做是为了更有效,而不是一直加载同一个文件,而是只加载一次。

但是我如何进行测试,其中我有一个包含正确对象的文件,并且我想在每个测试中一一引入小的修改?

有什么想法吗?

最佳答案

克隆对象。

在 before 函数中导入对象

https://futurestud.io/tutorials/mocha-global-setup-and-teardown-before-after

然后在每个函数或 beforeEach 函数中,使用 lodash 的 cloneDeep 函数之类的方法克隆该对象。

https://lodash.com/docs/4.17.15#cloneDeep

关于Javascript require() 多次测试文件不会再次创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60399706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com