Я не знаю подробностей JUnit 3, но я рекомендую вам обновить до версии JUnit 4.
Теперь, если @ContextConfiguration
(или @WebAppConfiguration
) используется для указания используется контекст приложения, а для выполнения тестов используется SpringJUnit4ClassRunner
, затем он кэшируется между тестами. Из reference docs:
После рамки TestContext загружает ApplicationContext (или WebApplicationContext) для теста, что контекст будет кэшировать и использовать повторно для всех последующих тестов, которые декларируют такую же уникальную конфигурацию контекста в пределах одного набора тестов , Чтобы понять, как работает кеширование, важно понять, что имеется в виду под номером и набор тестов.
ApplicationContext может быть уникальным, идентифицированным комбинацией параметров конфигурации, которые используются для его загрузки. Следовательно, уникальная комбинация параметров конфигурации используется для генерации ключа , под которым кэшируется контекст.
Справочные документы продолжают перечислять параметры конфигурации, которые используются для создания ключа кеша контекста.
Какие данные сеанса "истекают кровью"? Используйте аннотацию @Transactional
для отката любых изменений базы данных для теста, которые записываются в базу данных. Аннотацию @DirtiesContext
можно использовать для воссоздания текущего контекста приложения, если он загрязнен, но обычно этого можно избежать, указав разные @ActiveProfiles
. Узнайте больше о Весне integration test annotation в справочных документах.
Обновление до JUnit 4! –