2013-12-15 76 views
0

我在spring容器web應用程序上構建了一些junit服務層測試。Spring - Web應用程序的Junit

定期我的web應用程序運行在tomcat服務器上。

我的問題是:當我作爲junit測試運行項目時,tomcat實例是否以某種方式啓動?還是junit知道如何在沒有真正的tomcat的情況下運行測試?

感謝,

+0

單元測試通常測試一個類。您不需要Tomcat服務器來調用類中的方法。而且JUnit不會奇蹟般地啓動一個Tomcat服務器:它對Tomcat有0知識,沒有捆綁的tomcat實例,不知道如何啓動tomcat服務器和部署webapp。如何在不知道測試實際執行的情況下編寫JUnit測試?你的單元測試的代碼是什麼? –

+0

我不是一名測試人員,我是一名開發人員,測試是由我們的java工程師編寫的,這對java,Junit和Spring來說是相當新的(原來他的一名.net工程師) – Urbanleg

+0

Ouch。開發單元測試是開發人員的工作。這不是測試人員的工作。 –

回答

3

這很大程度上取決於你在談論測試的類型。單獨測試一個特定類的功能的單元測試不需要Tomcat運行。這些只是執行這些類中的邏輯,根據需要提供嘲弄的依賴關係。你使用的是Spring,所以我假設你使用DI來提供依賴關係。

您還有集成測試。這可能是簡單的綜合測試,例如DAO測試針對數據庫夾具運行或針對運行在容器中的應用程序運行的功能測試。後一種類型將要求您有一個正在運行的應用程序。

編輯:

它是一個服務層測試,而不是一個單元測試,JUnit是工具

如果這是正確的,它聽起來就像測試分爲簡單的集成測試類別,它需要一個數據庫但沒有應用程序容器因此,您的JUnit測試需要設置此數據庫(可能在內存中,例如H2),並用已知的開始位置填充它。然後,JUnit將對這個燈具執行測試,並在完成後將其撕下。

相關問題