今天在写单元测试时,用到对double类型进行断言相等时出现的问题
代码:Assert.assertEquals(1.0, 1.0);
异常:
java.lang.AssertionError: Use assertEquals(expected, actual, delta) to compare floating-point numbers
... ...
附加源码
static public void assertEquals(double expected, double actual) {
assertEquals(null, expected, actual);
}
static public void assertEquals(String message, double expected, double actual) {
fail("Use assertEquals(expected, actual, delta) to compare floating-point numbers");
}
从以上的代码可以看出JUnit本身不支持double类型的等值断言。
所以解决的办法就是Assert.assertEquals((Double) 1.0, (Double) 1.0); 强转成 long类型
但是还不知道为什么JUnit的这么简单的断言都不实现呢? 请高手解答
分享到:
2012-07-06 16:00
浏览 3038
评论