首页 > 解决方案 > Javascript 测试引用相同的对象数组,即使我在每次测试之前都将其清空

问题描述

所以,我有一个异步函数,它获取一个对象数组,我想对其进行测试。但问题是,每个测试都引用同一个数组,即使我在每次测试之前单独获取它。

describe('Package parser mock status file tests', async () => {
    let packages: Package[] = [];

    beforeEach(async function () {
        packages = await PackageParser.fromStatusFile("tests/mockStatusFile.txt");
    });

    afterEach(async function () {
        packages.length = 0;
    });

这会导致数组被填充的次数与测试次数一样多,即使我在每次测试之前都将其清空。即使我在每个测试中将数组设置为不同的变量。我在某种程度上知道对象和数组引用和异步,但我不明白这是怎么可能的。

我正在使用摩卡咖啡。

标签: javascriptobjecttestingmocha.js

解决方案


问题与 mocha、异步或测试无关。我的 PackageParser 对象包含一个跟踪已处理包的数组。这个数组从未被清空。

我以前在使用异步、对象引用和类似的东西时看到过奇怪的东西,我立刻认为这是别的东西。


推荐阅读