шутить тестирование передать переменную в другой тест - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь назначить переменную из одного теста для доступа в другом тесте.Например:

let user;

test('create new user', async () => {
  const response = await createUser()
  user = response
})

test('delete user', async () => {
  const response = await deleteUser(user.id)
})

Я понимаю, что у jest есть опция --runInBand, однако в "delete user" для этого пользователя все равно указано значение undefined.Есть идеи, как сделать это с помощью шутки?Спасибо

1 Ответ

0 голосов
/ 02 февраля 2019

Каждый тест выполняется независимо и по уважительной причинеТесты должны подтверждать отдельные условия, методы и логику.Все, что делает --runInBand, - это запускает тесты последовательно, но они по-прежнему не всегда могут совместно использовать объекты данных так, как вы ожидаете.

Кроме того, если предположить, что эти методы отдают бэкэнд-сервисуВ некотором роде вы не сможете легко протестировать поведение этой системы.Звучит так, будто вам нужна сквозная или интегрированная инфраструктура тестирования, в отличие от unit инфраструктуры тестирования, такой как Jest.

Продолжая работать с Jest, вам, вероятно, понадобится смоделировать любую вызываемую бэкэнд-службу в createUser и deleteUser.Jest mocks может помочь заменить внешние функции новыми, которые создают типы условий, которые вы хотите протестировать.

В качестве альтернативы или дополнения вы можете заглушить объект user, используя beforeAll или beforeEach , создавая пример данных, который позволяет вам проверить, как deleteUser ведет себя, когда передается конкретный объект (вероятно, в обход любой сохраняемости бэкенда с вышеупомянутым макетом).

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