DVLev
Новичок
Использование PHPUnitTest при отладкке запросов к базам данных
Использую PEAR:HPUnitTest для написания тестов PHP кода, но столкнулся с идеологическим вопросом.
Допустим у меня таблица
id, name (id - auto_increment)
Операции над таблицей: add/update/delete/select
Как правильно написать тесты, проверяющие эти функции, само собой интересует не сам код, а именно теория.
Сейчас так:
1. запрашиваем кол-во записей
2. добавляем запись с заранее известным значением
3. получаем LastInsertID
4. проверяем кол-во записей в таблице (чтобы убедиться что запись добавилась, должно быть на 1 больше чем на первом этапе)
5. вытаскиваем данные по id, полученному на 3 этапе
6. проверяем на соответствие
7. делаем update
8. вытаскиваем по id и проверяем на соответствие
9. удаляем
10. запрашиваем кол-во записей, должно быть на 1 меньше
Кто-то может покритиковать, поделиться опытом?
А если идет каскадное обновление с 5 таблицами? Например: добавили запись в одну таблицу, обновили в другой, удалили из третьей. Получается надо писать гигантский тест на проверку всей транзакции, а еще геморойнее его переписывать в случае изменения.
Т.е. по сути вопрос - что должен проверять тест? Может вообще отказаться от теста такого рода операций.?
Использую PEAR:HPUnitTest для написания тестов PHP кода, но столкнулся с идеологическим вопросом.
Допустим у меня таблица
id, name (id - auto_increment)
Операции над таблицей: add/update/delete/select
Как правильно написать тесты, проверяющие эти функции, само собой интересует не сам код, а именно теория.
Сейчас так:
1. запрашиваем кол-во записей
2. добавляем запись с заранее известным значением
3. получаем LastInsertID
4. проверяем кол-во записей в таблице (чтобы убедиться что запись добавилась, должно быть на 1 больше чем на первом этапе)
5. вытаскиваем данные по id, полученному на 3 этапе
6. проверяем на соответствие
7. делаем update
8. вытаскиваем по id и проверяем на соответствие
9. удаляем
10. запрашиваем кол-во записей, должно быть на 1 меньше
Кто-то может покритиковать, поделиться опытом?
А если идет каскадное обновление с 5 таблицами? Например: добавили запись в одну таблицу, обновили в другой, удалили из третьей. Получается надо писать гигантский тест на проверку всей транзакции, а еще геморойнее его переписывать в случае изменения.
Т.е. по сути вопрос - что должен проверять тест? Может вообще отказаться от теста такого рода операций.?