2011-10-24 105 views
2

我有一個小的junit4測試,期望有一個例外。 此代碼:測試與預期的異常顯示爲失敗

@Test(expected = EntityVide.class) 
    public void testPing() throws Exception { 
     System.out.println("ping"); 
     int in = 0; 
     int expResult = 1; 
     int result = instance.ping(in); 

    } 

當我運行測試表明作爲一個失敗的一個。 我已經添加@RunWith(JUnit4ClassRunner.class),但沒有任何更改。 我使用netbeans 7.0和junit 4.

謝謝。

+2

什麼是'EntityVide'? –

+0

你的類是否擴展了'junit.TestCase'?如果是這樣,即使添加'@ Test'註釋,它也會作爲JUnit 3測試運行。要檢查,只需將您的方法重命名爲不以'test'開頭的內容:如果它不再執行,那麼您將使用JUnit 3 runner來運行它。 –

+0

它實際上是否會拋出異常? – Thomas

回答

3

expected @Test註釋的屬性是預期的例外。有時你想讓你的測試拋出某種類型的異常。在JUnit的3. *版本中,你必須自己編寫try/catch。在Junit 4中,您可以使用註釋標記此測試。

你的測試不會拋出異常,所以它失敗了,因爲你說你期望EntityVide類型的異常。刪除此屬性並使用Assert.assertEquals()驗證您的結果。