Spring: обмен транзакциями между потоками для интеграционного тестирования - PullRequest
0 голосов
/ 01 марта 2012

У меня есть класс, который использует ThreadPoolTaskExecutor для выделения задач, которые взаимодействуют с базой данных.Мои интеграционные тесты для этой задачи терпят неудачу, я думаю, потому что они полагаются на тестовые данные, вставленные через DataSourceTransactionManager, а дополнительные потоки не видят транзакцию из основного класса и, следовательно, не получают ничего из базы данных.Есть ли способ заставить потоки видеть вставленные тестовые данные, не фиксируя транзакцию и не удаляя тестовые данные позже?

1 Ответ

0 голосов
/ 02 марта 2012

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

Метод setup(), в котором обычно создаются тестовые таблицы базы данных, является еще одним хорошим местом дляубедитесь, что новые таблицы очищены от любых оставшихся данных предыдущих тестов, прежде чем вставляются тестовые данные.

Надеюсь, это поможет.

...