Что я могу сделать, если afterAll не выполняется при сбое сценария? - PullRequest
0 голосов
/ 14 мая 2019

У меня есть несколько сценариев, которые должны быть выполнены.Я ввожу некоторые тестовые данные в базу данных (используя beforeAll) перед выполнением этих сценариев и удаляю такие данные после выполнения сценариев.

Проблема заключается в том, что в случае сбоя сценария код, присутствующий в afterAll, не выполняется.Поэтому данные испытаний не удаляются из базы данных.Есть ли другой способ сделать это?

Заранее спасибо.

1 Ответ

0 голосов
/ 14 мая 2019

Во-первых, вы должны смоделировать соединение с базой данных, для этого есть много библиотек, например, если вы используете mongodb, посмотрите на Mockgoose

Mockgoose предоставляет тестовую базу данных, раскручивая mongod на задней панели при вызове mongoose.connect. По умолчанию используется в хранилище памяти, в котором нет постоянства.

Для перехвата afterAll, который никогда не запускается (что является поведением по умолчанию в случае сбоя теста):

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

...