2010-06-07 43 views
1

我有一個三層應用程序正在開發中,並正在爲持久層中的DAO創建集成測試。當應用程序在Websphere或JBoss中運行時,我希望使用這些應用程序服務器的連接池和事務管理器。當應用程序在Tomcat或Jetty中運行時,我們將使用C3P0進行池化,並使用Atomikos進行事務處理。應該在應用程序服務器中完成DAO的集成測試嗎?

由於這些不同的子系統,應該在完全配置的應用服務器環境中測試DAO還是應該在集成測試服務層時處理這些問題?目前,我們計劃使用非JTA(即資源本地)事務爲DAO集成測試設置一個簡單的JDBC數據源,因此不涉及應用程序服務器....但是這讓我想知道我們不會涉及的環境問題。

+0

題外話可能是,但我一直在尋找一種方式來使用事務(「單元測試」我的外容器,但與數據庫的DAO - 用簡單的JDBC連接),並希望你能詳細說明你如何在沒有應用服務器的情況下使用Transaction。 – dchucks 2012-03-26 13:38:25

+0

@dchucks - 我創建了一個spring-test應用程序上下文,並將我自己的(基於Spring的)JPA實體管理器配置爲使用Hibernate和Atomikos事務管理工具。如果您想了解更多細節,請打開一個問題並從這裏鏈接到它。 – HDave 2012-03-26 19:46:10

回答

1

我覺得你在這條思路上走在正確的軌道上。如果可能,您應該建立一個運行您的生產環境的持續集成服務器(例如Hudson)。通過這種方式,您可以使用Tomcat等非常高的可靠性進行開發,根據您的本地設置運行測試,並在簽入代碼時確保那些相同的測試正在針對真實交易運行。

+0

我們有哈德森已經啓動和運行。我想我只是想知道DAO測試應該在應用服務器上運行......還是僅僅是端到端的測試。 – HDave 2010-06-07 19:39:58

2

除了使用unittests測試每個模塊,integration test應測試模塊組。

我不想迂腐,但在這個問題上,這是由0123A由QA的黑盒測試blowed。

對於較小的項目,這可能是不可行的

+0

完全同意 - 我理解集成測試是測試從客戶端到數據庫的完整路徑。儘管僅測試服務層可能不僅僅是單元測試。 – 2010-06-07 06:12:00

+0

我對集成測試定義的理解是兩個或多個模塊或一個模塊和一個外部資源。不管定義如何,DAO測試應該運行在應用服務器上嗎?還是僅僅是端到端的測試? – HDave 2010-06-07 19:41:08

相關問題