Протрите все таблицы в схеме - sequelize nodejs

0

Для выполнения модульного тестирования в базе данных mysql с использованием sequelize как ORM мне нужно обновить мою базу данных, когда начнется запуск каждого теста. На самом деле я написал такое решение:

beforeEach(() => {
   table1.destroy({ where: {} })
   table2.destroy({ where: {} })
   table3.destroy({ where: {} })
})

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

Что-то вроде:

beforeEach(() => db.clean())

1 ответ

2
Лучший ответ

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

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

Если вы тестируете, что sequelize на самом деле разговаривает с вашей базой данных, то вы делаете гораздо больше, чем модульное тестирование, и я бы сказал, что вам нужен внеполосный способ инициализации и управления средой, но я Кроме того, следует отметить, что у sequelize уже есть целый набор тестов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню