2008-11-05 2 views
1

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

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

ответ

1

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

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

+0

Мои модульные тесты охватывают то, что можно высмеять. Это окончательный тест, развернутый в среде QA, чтобы увидеть, что вся партия играет вместе. – tunaranch 2008-11-05 07:25:25

0

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

+0

Да, это было бы слишком много, так как будут другие возможности доступа к нему. (никогда не обращайте внимания на то, что в моем случае у нас нет доступа к инфраструктуре физического сервера) – tunaranch 2010-10-31 04:26:27