我们有一个基于 NSpring 1.2 和 NHibernate 2 的 Web 应用程序并使用 HibernateTemplate。Web 应用程序配置为使用OpenSessionInViewModule。
然而,在我们的集成测试中,休眠会话被标记为InitDeferredClose,并且在大多数情况下,这对我们的测试来说很好。有一些服务功能在 Web 应用程序的上下文中运行良好,但在从测试工具调用时会失败。
例如:我有一个函数可以在事务中创建和更新多个对象。该函数标有 Transaction 属性,但测试失败并显示以下消息:
Illegal attempt to associate a collection with two open sessions
从 Web 应用程序调用时,事务成功完成
我应该如何配置 spring 和 hibernate 以便我的集成测试正确复制 Web 应用程序的功能?