2009-07-19 59 views
26

我在eclipse中使用JUnit 4拒絕通過以下測試用例。 什麼可能是錯的?JUnit預期標記不能按預期工作

@Test(expected = IllegalArgumentException.class) 
public void testIAE() { 
    throw new IllegalArgumentException(); 
} 

這個確切的測試用例是約試圖與預期的標籤沒有工作,以測試自己的代碼的時候。我想看看JUnit是否會通過最基本的測試。它沒有。

我也測試過自定義異常,但沒有運氣。

截圖: Screenshot http://www.freeimagehosting.net/uploads/6a995b0db7.png

+2

這一個真的很奇怪,做了一些測試我自己,並且這個代碼運行良好(測試是成功的)... – Torandi 2009-07-20 00:22:59

+0

我添加了一個截圖,只是爲了顯示...我也會懷疑。 – 2009-07-20 01:17:33

回答

71

的問題是,你的AnnounceThreadTest擴展的TestCase。因爲它擴展了TestCase,所以JUnit Runner將它視爲一個JUnit 3.8測試,並且測試正在運行,因爲它始於單詞test,隱藏了事實上根本沒有使用@Test註釋。

要解決此問題,請從類定義中刪除「extends TestCase」。

@Test(expected = IllegalArgumentException.class) 
    public void testExpected() 
    { 
     throw new IllegalArgumentException(); 
    } 

通行證完美:

3

使用JUnit 4.4剛跑到這的IntelliJ。

重建您的整個項目,然後重試。還有別的,你做錯了。 JUnit 4.4正在廣告中工作。