是否有针对常见Java接口的预构建JUnit测试存储库?

时间:2010-10-12 13:49:27

标签: java unit-testing junit

本学期我正在教一个数据结构类,我们在给定组件接口的情况下构建了一系列JUnit测试。然后,我们使用setUp来插入特定的具体实现。在大多数情况下,我们正在实现java.util接口。是否有针对常见Java组件的一组通用严格的JUnit测试,或者某种类型的框架使测试用例的设计不那么痛苦?

3 个答案:

答案 0 :(得分:2)

出于这些目的,mocking可能是单元测试使用“具体”实现的最简单方法。其中最好的是Mockito

答案 1 :(得分: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
                    )
            )
        ));

    }



}

您的主要出发点是这些便利课程:

答案 2 :(得分:1)

您可以看看Apache Harmony和GNU Classpath单元如何测试java.util类的各自洁净室实现。