2010-10-12 24 views
2

我教一個數據結構類本學期,我們建立的給定的組件接口JUnit測試採空區。然後我們使用setUp來插入特定的具體實現。在大多數情況下,我們正在實現java.util接口。是否有一套通用的Java組件的嚴格的JUnit測試,或者是一些讓設計測試用例更加痛苦的框架?是否有用於常見Java接口的預構建JUnit測試存儲庫?

回答

2

Hamcrest提供了幾個匹配器所特有的地圖和收藏。
你可以找到他們在tutorial

(JUnit的4.x版包含Hamcrest)

示例代碼:

import static org.junit.Assert.*; 
import static org.junit.matchers.JUnitMatchers.*; 
import java.util.Arrays; 
import java.util.Collection; 
import org.junit.Test; 

public class DummyTest{ 

    @Test 
    public void someTest(){ 

     final Collection<Integer> coll = Arrays.asList(1, 2, 3, 4, 5); 
     assertThat(coll, hasItems(5, 4, 3, 2, 1)); 
     assertThat(coll, not(hasItems(6))); 
     assertThat(coll, 
      both(
       is(List.class) 
      ).and(
       equalTo(
        Arrays.asList(
         0x1,0x2,0x3,0x4,0x5 
        ) 
      ) 
     )); 

    } 



} 

你的主要出發點是這些方便的類:

+0

難道我是覺得那樣的「語法」是唯一一個可怕嗎? – 2011-02-26 20:15:33

2

爲了這些目的mocking可以是具有由單元測試中使用的「混凝土」實現的最簡單的方法。最好的之一是Mockito

1

你可以看看Apache的和諧與GNU Classpath的單元如何測試java.util類各自的無塵室實現。