assertEquals问题(对象对象)(很长)

时间:2015-04-09 03:38:33

标签: java junit

Interval<Integer> interval1 = Intervals.open(3, 6);

此处3是下限,6是上限。

assertEquals(interval1.lowerBound(), 3);

编写测试后,有一个红色下划线说:

ambiguous method call.Both assertEquals(object, object) assertEquals(long, long)

1 个答案:

答案 0 :(得分:8)

问题是您使用assertEqualsLong来调用int,因此编译器无法判断您是否需要assertEquals(long, long) (自动装箱Long)或assertEquals(Object, Object)(自动装箱int)。

要解决这个问题,你需要自己处理拆箱或装箱,写下:

assertEquals(3L, interval1.lowerBound().longValue());

或者这个:

assertEquals(Long.valueOf(3L), interval1.lowerBound());

(顺便说一句,请注意我为你交换了两个参数的顺序。assertEquals期望第一个参数是预期值,第二个参数是实际值。这不会影响断言本身,但它会影响断言失败时生成的异常消息。)