У нас есть веб-приложение, основанное на NSpring 1.2 и NHibernate 2, и мы используем HibernateTemplate. Веб-приложение настроено на использование OpenSessionInViewModule .
Однако в наших интеграционных тестах сеанс гибернации помечается как InitDeferredClose , и по большей части это отлично работает для наших тестов. Есть некоторые сервисные функции, которые отлично работают в контексте веб-приложения, но не работают при вызове из тестового набора.
Например: у меня есть одна функция, которая создает и обновляет ряд объектов в транзакции. Функция помечена атрибутом Transaction, но тест завершается неудачно с сообщением:
Illegal attempt to associate a collection with two open sessions
При вызове из веб-приложения транзакция успешно завершается
Как настроить весенний и спящий режим, чтобы мои интеграционные тесты правильно копировали функциональность веб-приложения?