Size: a a a

2020 September 07

AW

Alex Wells in PHP
Vitaliy Kostetskiy
сейчас идет рефакторинг проекта и на одной бд завязаны несколько реп с кодом, т.е. сначала переписывается кодовая база а потом бд мигрирует на нормализованную структуру, мне нужно с пол года быть уверенным что мы нормально работаем с бд
напиши интеграционные тесты
источник

AW

Alex Wells in PHP
это самый простой вариант для легаси
источник

VK

Vitaliy Kostetskiy in PHP
Alex Wells
напиши интеграционные тесты
я в вопросе и написал что необходимы интеграционные тесты для репозиториев
источник

AW

Alex Wells in PHP
не для репозиториев, а для урлов
источник

AW

Alex Wells in PHP
если потом будет менятся структура данных, тогда зачем сейчас покрывать репозитории?
источник

k

knopkod4v in PHP
Vitaliy Kostetskiy
сейчас идет рефакторинг проекта и на одной бд завязаны несколько реп с кодом, т.е. сначала переписывается кодовая база а потом бд мигрирует на нормализованную структуру, мне нужно с пол года быть уверенным что мы нормально работаем с бд
сделай тесты на апи. Позитивные, зелёность которых даст тебе уверенность, что для основных (основных = которые влияют на бизнес в плане бабла больше всего) кейсов всё хорошо. Дальше сможешь рефакторить спокойнее
источник

AW

Alex Wells in PHP
knopkod4v
сделай тесты на апи. Позитивные, зелёность которых даст тебе уверенность, что для основных (основных = которые влияют на бизнес в плане бабла больше всего) кейсов всё хорошо. Дальше сможешь рефакторить спокойнее
+, если писать юниты или интеграционки на код - то только на тот, который не будешь дропать через пол года
источник

AW

Alex Wells in PHP
тесты не так быстро пишутся, если что
источник

VK

Vitaliy Kostetskiy in PHP
Alex Wells
+, если писать юниты или интеграционки на код - то только на тот, который не будешь дропать через пол года
здесь в одной таблице под 100 полей
и на эту таблицу завязаны несколько энтитей
вряд ли мы сможем нормально рефакторить если репозитории полностью не будут покрыты интеграционными тестами
источник

VK

Vitaliy Kostetskiy in PHP
Даже если их придется потом удалить
источник

AW

Alex Wells in PHP
Vitaliy Kostetskiy
здесь в одной таблице под 100 полей
и на эту таблицу завязаны несколько энтитей
вряд ли мы сможем нормально рефакторить если репозитории полностью не будут покрыты интеграционными тестами
ну.. ок, тогда следуй совету выше. В тестах на выборки ты тестируешь ВЫБОРКИ, и срать если ты не так создал энтити, потому что это либо тебе не важно, либо это вылезет в тесте
источник

VK

Vitaliy Kostetskiy in PHP
Vladimir
Делаешь дата фикстуры и тестишь на них, в чем трабл?
чем их сделать?
источник

AW

Alex Wells in PHP
Vitaliy Kostetskiy
чем их сделать?
ничем, с репозиториями они не помогут, если ты собираешься рефакторить их
источник

DD

Dmitry Denisov in PHP
Vitaliy Kostetskiy
здесь в одной таблице под 100 полей
и на эту таблицу завязаны несколько энтитей
вряд ли мы сможем нормально рефакторить если репозитории полностью не будут покрыты интеграционными тестами
Я, конечно, не эксперт, но, возможно, тут стоило бы еще порефакторить структуру хранения данных и связки их сперва
источник

DD

Dmitry Denisov in PHP
Не слишком удобно мейнтейнить, тестить и расширять таблицу, где 100+ полей
источник

VK

Vitaliy Kostetskiy in PHP
Alex Wells
ну.. ок, тогда следуй совету выше. В тестах на выборки ты тестируешь ВЫБОРКИ, и срать если ты не так создал энтити, потому что это либо тебе не важно, либо это вылезет в тесте
я понимаю
я выше писал, что использую предподготовленный sql для тестирования выборок
мне сказали что это гиблое дело
далее у меня возник вопрос, как мне протестировать выборку если бд пустая, выходит что нужно что то вставить в бд, а как мне использовать непротестированный метод для вставки
А что бы протестировать метод для вставки, мне необходима будет выборка того что я втавил
т.е. получается замкнутый круг
источник

AW

Alex Wells in PHP
Vitaliy Kostetskiy
я понимаю
я выше писал, что использую предподготовленный sql для тестирования выборок
мне сказали что это гиблое дело
далее у меня возник вопрос, как мне протестировать выборку если бд пустая, выходит что нужно что то вставить в бд, а как мне использовать непротестированный метод для вставки
А что бы протестировать метод для вставки, мне необходима будет выборка того что я втавил
т.е. получается замкнутый круг
зачем тебе использовать метод вставки, скажи?
источник

AW

Alex Wells in PHP
factory(Model::class, 150)->create()
источник

AW

Alex Wells in PHP
ты тестируешь не метод вставки - значит не трогай его вообще
источник

VK

Vitaliy Kostetskiy in PHP
Alex Wells
зачем тебе использовать метод вставки, скажи?
я накатываю структуру бд перед тестами
на этом этапе бд пустая
что мне делать дальше?
источник