Задать вопрос

Unit тестирование

Как тестировать такую ситуацию?
<?php
if (!$model->save()) {
    throw new Exception('сущность не сохранена');
}

Эта ситуация может возникнуть если бд упадет во время выполнения, как сэмулировать падение бд?
  • Вопрос задан
  • 2512 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Первое что приходит на ум - подсуньте модели битый бд адаптер. Например, при подключении укажите неверный порт или пароль. Если нужна конкретика - уточните что за фреймворк и покажите листинг побольше.
Ответ написан
@denis_vl
Программист. Админ. Да и от скуки - на все руки.
Unit теститрование как бы подразумевает проверку различных ситуаций, и проверку правильности обработки их программой. В случае с БД ситуаций может быть несколько. Все перечислять не берусь, но для примера:
1. Потеря связи с БД - тут достаточно указать неправильный адрес сервера БД.
2. Отсутствие самой БД - достаточно указать имя несуществующей БД.
3. Отсутствие таблицы - соответственно дать имя несуществующей таблицы.
4. Ошибка в запросе - тут немного сложнее. Ошибки могут возникать в разный случаях. Лучше всего подумать какие могут быть ошибки и их смоделировать.
5. Битая таблица - тут очень похоже на отсутствие таблицы. Смоделировать немного сложнее, но всегда надо при написании программы, предполагать что может случиться то, чего мы не ожидаем. То есть обработка неисправимых ошибок, и оповещение об этом пользователя.
Конечно, для каждого случая, необходимо писать свой тест.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы