Mocha beforeEach () назначает вложенный объект переменной только один раз и портит дальнейшие тесты, почему это происходит и как исправить? - PullRequest
0 голосов
/ 30 октября 2019

У меня проблема в том, что у меня есть несколько тестов в одном блоке describe() вместе с одной функцией beforeEach(). Цель этой функции beforeEach() - присвоить объявленной переменной значение объекта JS, который импортирован из другого файла и содержит объект с вложенными объектами и массивами объектов, которые правильно сформированы и преобразованы в объект из оригинала. JSON.

describe('function dataToInput', () => {
  let cleanData

  beforeEach(() => {
    cleanData = rawData
  })

Таким образом, при первом запуске теста это назначается правильно с импортированными данными, поскольку я вышел из системы для подтверждения, но при каждом последующем выполнении данные сохраняют любые изменения, сделанные в нем какчасть предыдущего теста.

У меня есть тесты, которые присваивают другое значение одному из содержимого объектов вложенных массивов, например cleanData.obs[0].obs_value.value = ''. Я ожидаю, что в следующем тесте это значение должно быть восстановлено до его предыдущего состояния с помощью присваивания beforeEach(), однако значение переносится в следующий тест, который затем не проходит. Я не могу понять, почему это так.

Если я специально назначу значение в beforeEach() исходному значению, то есть cleanData.obs[0].obs_value.value = 0.85, то оно будет работать так, как ожидалось, хотя это нежелательно, так как будет еще несколько тестов, и я бы не хотелдолжны объявлять новые переменные для каждого теста, когда требуется только один исходный источник данных.

Есть ли у кого-нибудь мысли о том, почему это происходит и как его решить?

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