Провоцировать сбой базы данных для интеграционного теста - PullRequest
1 голос
/ 05 ноября 2008

При запуске интеграционного теста (в данном случае Web-сервис обращается к JDBC), как вы заставляете базу данных выдавать ошибку, чтобы можно было проверить полученную ошибку мыла?

Я использую Spring Transactional Test Framework, так что было бы неразумно просто выдавать DROP TABLE whatever;, чтобы сломать его? : D

Ответы [ 2 ]

1 голос
/ 05 ноября 2008

По моему опыту, это отличное использование для фиктивных объектов. В частности, в случаях, когда вам необходимо вызвать конкретный сбой, чтобы проверить, как ваш объект, в случае модульного теста, или набор объектов, в случае интеграционных тестов, будет обрабатывать конкретный сбой. Лучше иметь полный контроль над ошибкой, чем форсировать конкретный случай неудачи в ваших интеграционных тестах.

Я недавно работал с структурой сущностей, где столкнулся с подобной дилеммой. Создавая фиктивные объекты для сущностей, я смог принудительно вызвать исключение во время вызовов методов при выполнении определенных тестов, чтобы проверить условия сбоя, взаимодействующие с базой данных. Этот ответ не относится к транзакционной среде Spring, но я уверен, что применяются те же принципы.

0 голосов
/ 30 октября 2010

Было бы слишком много отключить сетевой шнур сервера базы данных? Это очень хорошо имитирует «смерть базы данных».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...