Да, проверка внутри транзакции сделает вашу жизнь намного проще, но если транзакция - ваша вещь, то вам нужно реализовать компенсационные транзакции во время очистки (в @After
). Это кажется трудоемким, и это может быть, но при правильном подходе вы можете получить набор вспомогательных методов (в тестах), которые компенсируют (очищают) данные, накопленные во время @Before
, и тесты (с использованием JPA или прямого JDBC - все, что имеет смысл).
Например, если вы используете JPA и вызываете методы create для сущностей во время тестов, вы можете использовать (используя AOP, если вам нравятся или просто вспомогательные методы тестирования, такие как мы) шаблон для всех тестов:
- отслеживание идентификаторов всех сущностей, которые были созданы во время теста
- накапливайте их в созданном порядке
- Повтор воспроизведения объекта для этих объектов в обратном порядке в
@After