在定义测试时,JUnit 4有一个很大的弱点:它必须在编译时发生。 现在,JUnit 5将解决此问题! Milestone 1 刚刚发布 ,并带有全新的动态测试,该动态测试允许在运行时创建测试。
总览
本系列中有关JUnit 5的其他文章:
本系列基于预发行版本Milestone 1 ,当然可以随时更改。 发布新的里程碑或一般可用性版本时,帖子将更新。
您将在此处阅读的大多数内容和更多内容都可以在新兴的JUnit 5用户指南中找到 (该链接已链接到Milestone 1版本–您可以在此处找到最新版本)。 我在这里显示的代码示例可以在GitHub上找到 。
静态测试
JUnit 3通过解析方法名称并检查它们是否以测试开头来识别测试。 JUnit 4利用了(后来的)注解,并引入了@Test,这给了我们更多的自由。 这两种技术共享相同的方法:测试是在编译时定义的。
但是,事实证明这是非常有限的。 例如,考虑一种常见情况,即应该对多种输入数据执行相同的测试,在这种情况下,应针对许多不同点:
void testDistanceComputation(Point p1, Point p2, double distance) {
assertEquals(distance, p1.distanceTo(p2));
}</