2014-02-10 49 views
1

我刚刚迁移到更新版本的JUnit,其中Assert.assertNotEquals已被删除,所以现在我正在努力重写一个测试。断言在junit中float的不等式

原始代码:

Double givenLongitude = new Double(13); 
assertNotEquals(givenLongitude, extract("position.longitude", eventDataJson, Float.class), 0.01d); 

凡提取方法是,在这种情况下,返回浮动的通用方法。

我的问题是,我想用Assert.assertFalse这样

Double givenLongitude = new Double(13); 
assertFalse(givenLongitude.equals(extract("position.longitude", eventDataJson, Float.class)), 0.01d); 

但由于assertFalse可是没有delta值我不确定如何没有败诉的delta值做到这一点比较呢?有什么建议么?

+1

为什么您认为assertNotEquals不再存在?我刚刚检查了4.11源代码,它仍然存在 – mikea

+0

我正在使用4.8版本。 – Marthin

+1

哇,你是对的。真奇怪。 4.6(我正在使用)有。 4.11有它。看起来他们放弃了它,然后在4.11中再次放回。你可以尝试转向它,它在maven中心。 – mikea

回答

1

拉升至4.11版本。这个版本中重新引入了assertNotEquals方法。

0

我相信,提取方法的原型如下所示:

<T> T extract(String s, .... /*more parameters*/)

在这种情况下,你可以把它叫做如下:

<Float>extract("position.longitude", eventDataJson, Float.class)

所以,我想你可以做:

<Float>extract("position.longitude", eventDataJson, Float.class).floatValue()

extract返回

如果这是编译就可以使用assertEquals(float, float, float)

反正你总是可以创建特殊变量,并将值:

float actual = extract(......); 
assertEquals(expected, actual); 
+0

感谢您的意见。所以这意味着我的测试会变成assertEquals(float,float,float)并且它通过了我抛出的assert失败?这对我来说看起来像是黑客? – Marthin