2011-09-04 59 views
12

我是Eclipse的很長一段時間的用戶,但是談到JUnit時卻是新手。我有很多的Java項目,我想開始編寫這些項目中的方法的測試用例。我只是想知道爲此設置Eclipse環境的最佳方式。假設我有一個典型的項目,其中包含一個典型的src目錄。如何將測試用例附加到該項目。一些問題: 1.我不希望測試用例成爲我在該項目上創建的任何構建的一部分。 2.我想參考測試套件中的類。如何在Eclipse中使用JUnit

我是否在我想測試的包下設置單獨的測試目錄?我有單獨的測試包嗎?做這個的最好方式是什麼?

回答

8

這很死的簡單:

  • 拖動或以其他方式JUnit的jar文件放到你的lib文件夾,然後 修改項目構建設置,包括它。
  • 在您的項目下創建另一個名爲'test'的源文件夾
  • 在'test'源文件夾下創建測試包。最好的 的做法是模仿你的應用程序的軟件包名稱。
  • 在測試包內部創建測試類。最佳實踐 將模仿您需要測試的應用程序類,但在名稱末尾附加 測試。因此,例如在主應用程序 你可能有一個myapp.service.PrintService和相應的 測試,你將不得不myapp.service.PrintServiceTest
  • 從junit.framework.TestCase類
  • 延伸。每個測試類
  • 運行測試使用TestRunner的類。

當您構建應用程序的部署包時,只需排除'test'源文件夾即可。現在,如果你想真的下降死容易測試集成,然後使用Maven來設置您的項目。它立即烘焙所有最佳做法。

+3

由於JUnit附帶eclipse,因此不需要JAR文件,無論如何,您都可以將其作爲庫添加到項目配置中,但如果要從Ant運行測試,則需要JAR。自2006年JUnit 4發佈以來,並沒有必要擴展TestCase。您應該花時間學習如何使用它,因爲它可以簡化一些事情。 –

+0

如果您想發佈一個單獨的答案,詳細說明如何使用JUnit註釋,請隨時這樣做。不要因爲我選擇以不同於您的方式實施我的測試而質疑我對該工具的瞭解。 – Perception

+4

我會誠實地感興趣的是,爲什麼選擇現在擴展TestCase,除了缺乏對JUnit 4的興趣,因爲JUnit 3已經「足夠好」了。 –

0

一個簡單的解決方案是創建另一個專門用於測試相關類的源代碼目錄。例如,如果您的主要課程位於$PROJECT_ROOT/src,則可以將您的測試相關課程放入$PROJECT_ROOT/src-test。我沒有Eclipse的方便,但我知道,你可以修改$PROJECT_ROOT/.classpath文件(它的XML)到這個新目錄包括:

<classpath> 
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="src" path="src-test"/> <!-- ADD THIS ONE --> 
    ... 
</classpath> 

現在,所有的測試類會看到主類,但他們贏得不包含在你的構建中。我通常確保測試類與它正在測試的類位於同一個包中。這樣,可以從測試代碼訪問任何protected成員。

3

組織測試代碼的最好(或至少是最常見的)方法是爲測試代碼提供一個單獨的源文件夾,從而保持它很好地分離。在eclipse中,您可以在項目屬性中的「Build Path」下添加源文件夾。

但是,將測試類保留在與要測試的類相同的包中(即在測試源文件夾中具有相同的包層次結構)也是一個好主意。這使您可以測試代碼以調用包私有和受保護的方法,使測試內部行爲更容易,而這些行爲不應在公開API中公開。

相關問題