Произвольная выборка предметов для тестирования

Код этой функции (в веб-приложении React) берет случайную выборку элементов для тестирования в каждой тестовой функции для сквозного тестирования:

if (randomSample) {
  for (const test of selectedTestFunctions) {
    let total = getSampleSize(testFunctions.filter(tf => tf.testID === test)[0].itemTypeFilter);
    let item;
    let itemsTested = [];
    for (let count = 0; itemsTested.length < total; count++) {
      while (itemsTested.includes(item) || !item) {
        item = itemTypes[getRandomItemType()];
      }
      const payload = { 
        "itemPrefix": item.itemPrefix,
        "testFunction": test,
      };
      await apis.testRunner(payload).then(res => {
        setOutput((prevOutput) => [...prevOutput, `${item.itemPrefix}: ${res.data.result}`]);
        if (res.data.completed) {
          itemsTested.push(item);
        } else {
          item = null;
        }
      });
    }
  }
  return;
}

Функция getSampleSize возвращает целое число в зависимости от теста, а for цикл повторяется до тех пор, пока не будет запущено необходимое количество выборок. В while Цикл предназначен для того, чтобы один и тот же элемент не проверялся более одного раза. Если тест не завершен, устанавливаю item = null поэтому выбирается другой элемент, потому что это указывает на то, что в тесте произошла ошибка, а не на то, что он не прошел.

Хотя он работает правильно, я получаю предупреждение Function declared in a loop contains unsafe references to variable(s) 'item', 'item', 'item' no-loop-func на линии await apis.testRunner(payload).then(res => {.

Как я могу улучшить этот код? В частности, можно ли убрать предупреждение?

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *