测试时模糊的方法

时间:2014-09-22 16:22:35

标签: java testing junit

我试图从calculate测试方法MyClass

// TestClass {
@Test
public void testCalculate() {
    MyClass tester = new MyClass();
    assertEquals((long)123, tester.calculate().get(5));
}

// MyClass
public ArrayList<Long> calculate() {} // signature

不幸的是我收到以下错误:

The method assertEquals(Object, Object) is ambiguous for the type TestClass

我做错了什么? calculate的返回类型为ArrayList long - 值,我希望long数字为123.

当我执行以下操作时,它可以工作:

// TestClass {
@Test
public void testCalculate() {
    MyClass tester = new MyClass();
    ArrayList<Long> arr = new ArrayList<Long>();
    arr.add((long) 123);
    assertEquals(arr.get(0), tester.calculate().get(5));
}

1 个答案:

答案 0 :(得分:6)

您对assertEquals的来电有一个long类型的参数,另一个类型为Long。使用以下之一:

assertEquals(Long.valueOf(123L), tester.calculate().get(5));

assertEquals(123L, tester.calculate().get(5).longValue());

(我建议使用long文字123L,而不是使用long int字面值。{/ p>