为什么 junit4 没有用于 double[] 的 Assert.assertArrayEquals() ?
Junit4 中似乎有用于除 double 之外的所有原语的 Assert.assertArrayEquals()
方法,例如
Assert.assertArrayEquals(int[] expected, int[] actual)
and
Assert.assertArrayEquals(char[] expected, char[] actual)
但不是
Assert.assertArrayEquals(double[] expected, double[] actual, double eps)
or
Assert.assertArrayEquals(double[] expected, double[] actual, double[] eps)
(后者考虑了双精度数的可变范围)。我不应该编写这样的函数有根本原因吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
该方法似乎已在 JUnit 4.6 中添加,但由于某种原因在 4.5 及之前的版本中缺失。我预计升级到较新的 JUnit 版本不会出现任何问题。
The method seem to have been added in JUnit 4.6, but is for some reason missing in 4.5 and previous versions. I wouldn't expect any problems upgrading to a newer JUnit version.
它确实有这样的方法(在 4.7 中),尽管在线 javadoc 此处。这肯定是 javadoc/version 中的一个疏忽,但现在已经存在了。
It does have such a method (in 4.7), although it is not documented on the online javadoc here. It was certainly an oversight in the javadoc/version, but it is there now.
根据 JUnit bug 数据库,它们是“”。根据其他答案,听起来错误数据库与现实并不完全同步。
According to the JUnit bug database, they are "working on it". Based on other answers, it sounds like the bug database is not completely in sync with reality.
只需使用:
您可能需要它来舍入结果值以根据预期进行测试:
请参阅 javdoc 了解更多信息
just use:
You might need this to round your result values to test against expected:
See javdoc for more info