我试图从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));
}
答案 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>