我有一個三層應用程序正在開發中,並正在爲持久層中的DAO創建集成測試。當應用程序在Websphere或JBoss中運行時,我希望使用這些應用程序服務器的連接池和事務管理器。當應用程序在Tomcat或Jetty中運行時,我們將使用C3P0進行池化,並使用Atomikos進行事務處理。應該在應用程序服務器中完成DAO的集成測試嗎?
由於這些不同的子系統,應該在完全配置的應用服務器環境中測試DAO還是應該在集成測試服務層時處理這些問題?目前,我們計劃使用非JTA(即資源本地)事務爲DAO集成測試設置一個簡單的JDBC數據源,因此不涉及應用程序服務器....但是這讓我想知道我們不會涉及的環境問題。
題外話可能是,但我一直在尋找一種方式來使用事務(「單元測試」我的外容器,但與數據庫的DAO - 用簡單的JDBC連接),並希望你能詳細說明你如何在沒有應用服務器的情況下使用Transaction。 – dchucks 2012-03-26 13:38:25
@dchucks - 我創建了一個spring-test應用程序上下文,並將我自己的(基於Spring的)JPA實體管理器配置爲使用Hibernate和Atomikos事務管理工具。如果您想了解更多細節,請打開一個問題並從這裏鏈接到它。 – HDave 2012-03-26 19:46:10