2010-12-06 20 views
1

我的講師之前提到過這個,但是我不太明白爲什麼會出現這種情況。任何人都可以解釋嗎?爲什麼使用JUnit進行單元測試的類沒有main?

我們正在編寫一個計算素數的數組列表,我們必須使用JUnit來確保此數組列表的所有成員都是素數。爲什麼我不能在測試這個課程時使用main?

非常感謝你:)

回答

3

好吧,這些答案大部分太複雜了。我認爲你的問題更重要。並且它是一個很好的一個

答案是,當你成爲一個Java開發人員,並開始編寫大量的代碼,隨着時間的推移得到更新/修復,那麼它有一個單獨的測試插件,將自動運行測試你的代碼從代碼之外檢查它是否仍然以你期望的方式工作。這意味着無論出於何種原因,您都可以修改/調試代碼的不同方面,之後您的老闆會走過去,並詢問代碼是否仍然執行客戶希望它在修復之後執行的操作?沒有複雜性您可以在沒有複雜的主要錯誤語句的情況下回答他,這些錯誤語句會與正常的程序輸出混淆(並且會在非測試條件下放慢代碼),但是會有一個漂亮的綠色junit欄表示它仍然可以正常工作。直到你開發大型項目並且你有數百個測試要做,你纔會看到這個價值。此外,junit還有一些其他的技巧...

0

在單元測試中你沒有任何測試作爲一個整體。單元測試必須通常測試一個UNIT的方法。所以你應該編寫計算數組的方法,並使用Junit來測試這個方法。

主要方法只是一個入口點,它「定義」過程的流程。在單元測試中,我們不擔心流量。我們只是單位上的forcus。程序流程使用系統/組件測試進行驗證,而不是通過單元測試進行驗證。

0

因爲JUnit測試是由框架運行而不是標準控制檯應用程序。

JUnit測試運行器通過反射查找測試。

請參閱文檔here

1

因爲JUnit提供了一個main,它調用您在類中提供的函數。您仍然可以擁有自己的main功能;它們在運行JUnit時不會被使用。您可以使用main函數單獨測試您自己的類,但使用JUnit具有org.life.java的答案中所述的一些優點。

+0

+1 - 有一個`main`,但測試運行器是運行的應用程序,測試類和被測試的類是一種「有效載荷」。 – 2010-12-06 11:53:51

1

你可以,它不會被推薦。如果您編寫單元測試來測試它,那麼您可以使用junit測試運行器來運行測試並生成一個報告,指出它是通過還是失敗。如果你不這樣做,那麼你需要編寫你自己的報告機制。

單元測試有以下結構通常爲:

  1. 創建測試基礎設施
  2. 執行測試
  3. 驗證傳遞

你的情況有類似的東西,因此使用一個很好的候選人JUnit的。

單元測試API提供了有用的實用程序,您通常必須自己編寫代碼。

你爲什麼不嘗試兩種方法並親自看看。

0

請參閱:org.junit.runner.JUnitCore.main(String...),類似的東西是基礎。

相關問題