2012年11月8日 星期四

eclipse -- JUnit

eclipse一般內建JUnit,所以很方便建立Unit Test,這裡探討JUnit 4以後,在3.0以前,都要小心翼翼的寫名稱testMethodName(),一定要寫setUp()跟tearDown(),現在全部被@Before, @After, @Test取代了
先簡單建立一個Caculator,跟著新增UnitTest檔案,介面詢問使用哪一JUnit版本,當然選4.0,在最下面填入待測試的類別
跟著eclipse很貼心的問你要測試那些方法,勾選一下就可以搞定
跟著就是把沒有的程式碼補齊
這裡看到@Before取代了setUp(),而@After取代了tearDown,@Test也是取代了test這個prefix word,所以即使不命名為testAdd()也無妨,只是我懶著更動
另外一個可以注意到的是package name,把package name跟應用程式的程式碼分開可以避免檔案混雜的問題,除非有特殊必要,不然實在沒必要把test case跟待測試的class放在一起
故意在caculator埋下了一個錯誤,在這裡就可以看到有個測試沒有通過

一般有幾種assert

  • assertEquals(expected, actual)
  • assertEuqals(expected, actual, delta)
  • assertNotNull(actual)
  • assertNull(actual)
  • assertSame(excepted,actual)
  • assertTrue(actual)

大多望文生義,第二個用於floating point計算,畢竟floating point不是連續的,如果要測試例外處理,可以使用fail() function,junit會在引發處記錄錯誤

沒有留言:

張貼留言