Тесты Javascript ссылаются на один и тот же массив объектов, хотя я очищаю его перед каждым тестом - PullRequest
0 голосов
/ 06 ноября 2019

Итак, у меня есть асинхронная функция, которая выбирает массив объектов, для которых я хочу провести тестирование. Но проблема в том, что каждый тест ссылается на один и тот же массив, даже если я получаю его отдельно перед каждым тестом.

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;
    });

Это приводит к тому, что массив заполняется столько раз, сколько тестов, даже если я опорожняюэто перед каждым тестом. Даже если я установлю массивы на разные переменные в каждом тесте. Я знаю об объектах и ​​ссылках на массивы и асинхронности в некоторой степени, но я не понимаю, как это возможно.

Я использую Mocha.

1 Ответ

0 голосов
/ 06 ноября 2019

Проблема не связана с mocha, асинхронностью или тестированием. Мой объект PackageParser содержит массив, который отслеживает обработанные пакеты. Этот массив никогда не очищался.

Ранее я видел странные вещи при работе с асинхронными ссылками, объектными ссылками и такими вещами, что сразу подумал, что это что-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...