是否有Java自定义集合实现的测试套件?

maa*_*nus 17 java collections unit-testing

出于好奇,我Set为一个特殊情况写了一个自己的简单实现(其中所有可能的条目的集合是固定的,但它不是enum).它实际上非常简单,但显然,我的实现在没有大量测试的情况下无法使用(甚至可能在那时,但这是另一个主题;它主要是一个练习).

那么有没有我可以用于单元测试的测试套件呢?

Kev*_*ion 29

使用番石榴SetTestSuiteBuilder.

https://github.com/google/guava/blob/master/guava-testlib/src/com/google/common/collect/testing/SetTestSuiteBuilder.java

例子:

https://github.com/google/guava/blob/master/guava-testlib/src/com/google/common/collect/testing/TestsForSetsInJavaUtil.java

它作为maven central中"guava-testlib"的一部分发布.

  • 请注意,这些测试非常彻底,即使许多JDK集合也没有通过它们. (6认同)

GBa*_*GBa 8

Oracle拒绝为java开源测试套件,这是OSS社区与Oracle之间争论的核心.

有关详情,请参阅此处:

http://arstechnica.com/open-source/news/2010/12/apache-resigns-from-jcp-in-protest-of-oracle-governance-failures.ars

所以我怀疑你能做些什么来验证你是否符合标准.

这是一段摘录:

问题的核心是Apache无法证明其开源Java实现(称为Harmony)符合Java语言标准,因为Oracle拒绝在适当开放的许可下提供必要的测试套件.甲骨文在该问题上的立场与JCP政策相悖,JCP政策规定标准和其他相关材料必须可自由再分发,并以有助于实现第三方开源实施的条款提供.

这段冲突在相当长的一段时间内一直是一个相当大的摩擦主题,因为在Oracle收购该公司之前,Sun同样否认ASF适当访问测试套件.甲骨文最初支持Apache,呼吁以开放条款发布测试套件,但在收购Sun后改变其立场.甲骨文解决这个问题的方法非常强烈地表明公司可能不愿意解决Sun公司长期存在的任何长期存在的JCP治理问题.

  • 实际上,我不需要“标准一致性”,只需要一些某人用于他们自己的集合的测试。尽管如此,很高兴知道它不会来自 Oracle。 (2认同)