2016-09-18 604 views
0

我曾假設JUnit通過查找註釋爲@Test的方法找到了測試(從junit.framework.TestCase派生類中的類)。但是,我在項目中包含了來自http://256stuff.com/sources/jenkins_hash_java/JenkinsHashTest.java的測試。代碼的結構是如下所示:JUnit如何找到測試?

import junit.framework.TestCase; 

public class JenkinsHashTest extends TestCase { 
    public void testHashes() { 
     ...//this code is run 
    } 
} 

我已經證實,該測試方法是testHashes()儘管與@Test不被註釋運行。如果相關,我通過gradle test調用所有這些。

+3

JUnit 4使用註解'@ Test'。 JUnit 3擴展了'TestCase'並運行所有'testXXX'方法。 – dejvuth

+0

相關部分是您閱讀有關Junit 4和3之間的區別。然後您將刪除任何具有Junit3氣味的東西(例如,通過使用@Test註釋重新創建擴展關係)。 – GhostCat

回答

2

您可以參考這個Junit 3 vs Junit 4 Comparison

基本上,在JUnit 3中您需要延長junit.framework.TestCase。所有測試用例都需要遵循testXXX模式。

JUnit 4刪除了這些限制。任何具有零參數公共構造函數的公共類都可以充當測試類。任何需要考慮作爲測試方法的方法都應該註解爲@Test註釋。