我很想知道Java如何测试它的API.让我们说,我对ConcurrentHashMap类感兴趣,这个类会有任何单元测试吗?如果是这样,它是否可供公众使用?
当您说" Java "时,您可能意味着Java Development Kit(JDK),它来自OracleJDK和OpenJDK(OracleJDK本质上是OpenJDK,附带一些额外内容).OpenJDK是开源的; 并且可以在此处找到所有项目的源代码:
特别是,这是jdk7项目目录的可浏览版本.
我很想知道Java如何测试它的API.让我们说,我对ConcurrentHashMap类感兴趣,这个类会有任何单元测试吗?如果是这样,它是否可供公众使用?
是的,对于所有jdk7测试的列表,请查看jdk7/jdk/test.
如果您对ConcurrentHashMap
测试感兴趣,请查看jdk7/jdk/test/java/util/concurrent/ConcurrentHashMap:
注意: JDK测试可能看起来有点尴尬,因为它不使用JUnit,它使用JTreg.
任何像ConcurrentHashMap这样封装在jdk内部的类都经过测试,几乎所有情况你都不需要担心。如果您实现了定义良好的接口,那么就有可用的测试用例可以针对您的 API 运行并检查它是否自满。此外,如果您定义要公开的新 API,则必须使用 JUnit 或 TestNg 编写测试用例。这里测试用例的目的应该是检查你的 API 是否给出了预期的结果。如果您涵盖了使用 API 的所有组合,那么您可以识别何时出现回归。
题外话:集成测试假设在所有组件都集成时测试整个项目。
[更新]如果您确实需要测试ConcurrentHashMap,您可以使用使用ConcurrentHashMap的示例项目,请记住您最好选择多线程项目。