Работаю с фреймворком Yii2, пишу unit тесты
Возник вопрос - спор, нужно ли делать фикстуры для каждой таблички в бд ?
Бд очень большая, и имеется множество зависимостей, чтобы сделать один тест, нужно от 10-25 фикстур сделать, было решение использовать фикстуры только для динамичиских данных, например users, devises и т.п.
Напоминаю, если делать фикстуру, то все данные в табличке удаляются.
Не всем людям это понравилось, и люди начали "топить" за то, чтобы у тестовой БД все таблички были пустые, даже те, у которых данные статические (напр. role_users и т.п.)
Что посоветуете и какое решение правильное и оптимальное?
Доброй ночи.
Надо делать то, что именно нужно.
Для тестов фикстуры вообще можно не применять. Фикстуры применяются для заполнения сайта "тестовыми данными", так называемой "рыбой", чтобы руками не создавать кучу пользователей, товаров, статей, комментариев и тому подобному.
Для тестирования подойдут builder-ы.
Вам нужно протестировать работу с пользователем, авторизацию, регистрацию, смена статуса, смена роли.
Создаёте buider, при помощи которого создаёте пользователя, пишите тесты, потом очищаете базу от этого пользователя.
Подробную информацию можно найти на блоге Дмитрия Елисеева https://elisdn.ru
kopocov_v, я исправил.
Вот в статьях как раз говорится о том, что код можно тестировать без базы данных, даже не заморачиваться над тем, какую будете использовать.)
Тестируете код и в это время решаете, на какой базе будете делать, будь то mysql или postgresql.
Как только код протестирован - подключаете базу и всё будет работать как и работало.