2016-03-11 53 views
-2

我不明白,即使發生異常,Junit也不會失敗?

我正在做一些BigDecimal計算,並在某些時候引發異常(因爲需要舍入模式)。 我已經能夠發現這一點,因爲我一直在調試測試。

但是如果我運行測試,他們不會失敗!(我不是捕捉異常,就應該失敗!)

import java.math.BigDecimal; 
import java.util.ArrayList; 

import model.classes.ShoppingItem; 

import static org.junit.Assert.*; 

public class FooTetst 

@Test 
public void test() { 

    BigDecimal foo= new BigDecimal("0.000001"); 

    foo.multiply(new BigDecimal("1")).setScale(4);//Exception thrown 

    assertTrue(true);//test never gets here but it does not fail! 
    } 

    } 

我想知道是否有運行測試一種安全的方式:即,如果拋出一個異常失敗...

請問我做錯了什麼?

+0

@DaveNewton沒了戴夫 –

+1

問題尋求幫助調試(「**爲什麼不是這個代碼工作?**」)必須包括所期望的行爲,一個**具體的問題** **完整的錯誤信息和/或棧跟蹤**和**最短的代碼**在問題本身**中重現**。沒有**明確問題陳述**的問題對其他讀者沒有用處。請參閱:[如何創建最小,完整和可驗證示例。](http://stackoverflow.com/help/mcve)。 –

+0

請回顧[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)。這是一種禮貌的說法,你必須投入最少的努力,這在這裏並不明顯,以便讓某人花費一些努力給你一個有用的答案。 –

回答

1

試試這個,並檢查是否拋出異常

public class JunitTest2 { 

      @Test(expected = ArithmeticException.class) 
      public void checkException() { 
       you code 
      } 

     } 
+0

非常感謝Ahil,我明白我可以做到這一點,但我想了解我是否可以避免我所處的奇怪情況,因爲我需要測試失敗如果拋出異常 –

相關問題