По моему опыту, это превосходное использование для штучных объектов. В частности, случаи, когда вам нужно вызвать конкретный сбой, чтобы проверить, как ваш объект, в случае единичного теста или набора объектов, в случае интеграционных тестов, будет обрабатывать определенный сбой. Лучше иметь полный контроль над сбоем, а не форсировать конкретный случай сбоя в ваших интеграционных тестах.
Недавно я работал с инфраструктурой сущности, где я столкнулся с подобной дилеммой. Создав макеты для объектов, я смог заставить исключение быть брошенным во время вызовов метода во время выполнения определенных тестов, чтобы проверить условия отказа, взаимодействующие с базой данных. Это не ответ, который связан с Transactional Framework Spring, но я уверен, что применяются те же принципы.
Мои модульные тесты охватывают то, что можно высмеять. Это окончательный тест, развернутый в среде QA, чтобы увидеть, что вся партия играет вместе. – tunaranch 2008-11-05 07:25:25