mitaichik
@mitaichik

Как вы поддерживаете фикстуры актуальными?

Господа, прошу совета: крупный проект, сложная логика, активно пишется. Нужно писать юнит-тесты, для чего нужна куча фикстур. Как вы их оформляете и как поддерживаете актуальными?

Писать в массивы файлами (как рекомендует Yii) - пробывали - сложно держать актуальными - у нас в неделю по 5-10 миграций, структура довольно активно меняется + сами объекты сложные, некоторые агрегаты раскиданы по 10и таблицам.

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

Есть мысль не юзать предзаполненную БД а перед прогоном тестов создавать их используя код (создать пару юзеров, товаров, заказов и т.п.) Тут возникают опасения что долго будет + опять поддерживать надо - например чтоб привести заказ в определенное состояние - куча кода нужна...

В общем, как вы поддерживаете сложные фикстуры, поделитесь опытом!?

Буду рад вашим советам, заранее спасибо!
  • Вопрос задан
  • 376 просмотров
Пригласить эксперта
Ответы на вопрос 3
Maksclub
@Maksclub
maksfedorov.ru
Есть дополнение к Gii от Елисеева,
в частности оно умеет из актуальной базы формировать файл с массивом данных для модели
https://github.com/ElisDN/yii2-gii-fixture-generator

Подробнее -- делаешь фикстуры, потом доработал БД и руками че-то наполнил... и все фикстура выдохлась
тогда еще раз через gii выкатил актуальную инфу в файл и готово :)
Ответ написан
Комментировать
copist
@copist
Empower people to give
Писать в массивы файлами (как рекомендует Yii) - пробывали - сложно держать актуальными - у нас в неделю по 5-10 миграций, структура довольно активно меняется + сами объекты сложные, некоторые агрегаты раскиданы по 10и таблицам.

Конечно сложно. А откуда появляется метрика "Код с тестами писать в три раза медленнее"
Код поддерживать, тесты поддерживать, фикстуры поддерживать.
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
структура довольно активно меняется

видимо Вы пропустили этап планирования. Это плохо, когда структура активно меняется. Добавляется - норм, но тогда нет проблем, а вот меняется - это "бедулька".

например чтоб привести заказ в определенное состояние - куча кода нужна

www.yiiframework.com/doc-2.0/ext-faker-index.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы