2010-10-12 22 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类各自的无尘室实现。