Тестовые сценарии Transactional Spring Junit4 для сценария проверки - PullRequest
1 голос
/ 12 декабря 2011

Я использую Spring, JPA, используя hibernate для сервиса -> слой дао.Транзакции осуществляются весной.У меня есть тестовый пример проверки, в котором мне нужно проверить правильность вставки дубликатов данных и выдать исключение.

В моем тестовом примере, который является расширением AbstractTransactionalJUnit4SpringContextTests

Я настроил @TransactionConfiguration с defaultRollback в качестве true и именем компонента для менеджера транзакций (в моем случае это bean-компонент JpaTransactionManager)

Я выполняю этот тестовый сценарий, как показано ниже:

  1. Создать запись свызов dao.create (entity);(это выполнится успешно)

  2. Создайте ту же запись (со всеми атрибутами, которые установлены на шаге 1) и вызовите dao.create (entity) (это должно произойти сбой, но это не сбой)

  3. В моем методе create (entity) я вызываю метод validate (), который запускает скалярный объектный запрос (JPQL) для проверки.

Я ожидаю, что проверка не удастся, но это работает без исключения, и в БД вставляются повторяющиеся данные.

Я попытался отладить (включенные журналы гибернации), я обнаружил, что запрос выбора (скалярный запрос) не удается получитьправильные данные (в идеале это должно быть как минимум 1 запись, так как я вставил данные для нее на шаге 1, указанном выше).

Я вижу Вставить запрос для шага 1 в журналы, прежде чем выбрать запрос для проверки.

Есть ли другой способ написания тестового примера для такого сценария, который включает в себя spring / jpa с hibernate?

Пожалуйста, оставьте свои мнения

Заранее спасибо !!

1 Ответ

0 голосов
/ 15 декабря 2011

Не могли бы вы вставить свой тест здесь, я считаю, что каждый тест выполняется в своей собственной транзакции, и у вас defaultRollback как true.Это должно быть проблемой.

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