Fis*_*ian 9 java junit unit-testing junit4 junit5
在JUnit 4中,可选的断言消息是assertEquals方法中的第一个参数.在JUnit 5中,它是最后一个.
是否有任何技术原因将其移至最后位置?如果是这样,哪个?
joh*_*ink 11
在3年前设计JUnit 5 API(现在在Jupiter测试引擎中表现出来)时,我会尝试澄清我们的思维过程.当时在场的其他人(马克·菲利普,萨姆·布兰嫩,马蒂亚斯·梅德斯和斯特凡·贝克托德)可能会为我的记忆而言......
我们有一些基本限制:
从编译器的角度来看,JUnit 5 API应该与旧版本完全分开,因此不同版本的测试可以并排放置
尽管如此,API应该让人感觉熟悉,以便简化迁移
API应该包含Java API设计的最新技术和良好实践
确定所有断言方法的可选消息参数org.junit.jupiter.api.Assertions将始终是最后一个是第2点和第3点之间的权衡.这更加有意义,因为我们允许Supplier<String> messageSupplier参数.在断言语句的第一个位置使用lambda表达式看起来很奇怪而且分散注意力 - 所以我们想到了.
从后见之明来看,我可能会主张对断言API进行更彻底的改变,以便放弃这个问题所触及的那种混淆.@Test考虑到JUnit Jupiter新手导入旧org.junit.Test注释的频率并且想知道为什么系统表现奇怪,我甚至不推测不用作测试方法的主要标记.
| 归档时间: |
|
| 查看次数: |
459 次 |
| 最近记录: |