use*_*330 3 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
Run Code Online (Sandbox Code Playgroud)
不幸的是我收到以下错误:
The method assertEquals(Object, Object) is ambiguous for the type TestClass
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?返回类型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));
}
Run Code Online (Sandbox Code Playgroud)
你的调用assertEquals
有一个类型的参数long
和另一个类型的参数Long
.使用以下之一:
assertEquals(Long.valueOf(123L), tester.calculate().get(5));
Run Code Online (Sandbox Code Playgroud)
要么
assertEquals(123L, tester.calculate().get(5).longValue());
Run Code Online (Sandbox Code Playgroud)
(我建议使用long
文本123L
,而不是强制转换为long
一个的int
文字.)