Как проверить метод @Transactional, где обновляются две таблицы - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь написать модульный тест для метода, который использует: @Transactional.Вызывается два метода, каждый из которых выполняет запрос на обновление двух таблиц, если один из них не выполняется, другой не должен запускаться или выполнять откат.

Мне нужно написать модульный тест, чтобы проверить, нормально ли работает транзакция илине.

Пожалуйста, помогите.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

тестирование состояния отказа - это не плохо, на самом деле это то, что должно быть сделано.

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

У вас есть два теста:

  1. Первое обновление завершается неудачно, все должно остановиться, а второе обновление не должно запускаться.
  2. первое обновление работает, второе не удается, поэтому первое обновление следует откатить.

Если вам нужны модульные тесты, используйте, например, базу данных в памяти.

Вы не говорите, какую базу данных вы используете, но обычно вы можете проверить, успешно ли выполнено обновление, так как оператор обновления сообщит вам, сколько строк было изменено. Если вы получили ноль или что-то не так с оператором обновления, и вы получили сообщение об ошибке, то вы знаете, что вам нужно остановить

0 голосов
/ 03 июня 2019

ложное второе исключение вызова вызова проверка транзакции, если данные были удалены

...