Пишу интеграционные тесты для сервисов с базой в памяти (h2). Сервисы не содержат никакой логики и просто вызывают аналогичные методы у ДАО. Также на сервисах стоят аннотации @Transactional (на уровне классов). Методы для чтения в сервисах помечены аннотациями @Transactional(readOnly = true).
Сейчас тестирую сервис для работы со справочником. Сама сущность справочника помечена аннотациями: @Entity, @Immutable, @EntityListeners(PreventAnyUpdate.class).
public class PreventAnyUpdate {
@PrePersist
void onPrePersist(Object o) {
throw new RuntimeException("Can't create Entity!");
}
@PreRemove
void onPreRemove(Object o) {
throw new RuntimeException("Can't delete Entity");
}
}
Все тесты проходят, кроме тестов для delete(). Должен выбрасывать исключение, но не выбрасывает, а всё нормально удаляет (что вообще не должен делать). Что не так?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости