Java 对assertEquals的不明确引用

Java 对assertEquals的不明确引用,java,assert,Java,Assert,在“最后一天”块中,三个断言编译无问题字符串预期和实际的字符串来自数据库 红色下划线的两个字符期望整数,并获得一个整数 然而,我无法摆脱下面的错误 错误:(56,19)java:org.junit.Assert中的方法assertEquals(java.lang.Object,java.lang.Object)和org.junit.Assert中的方法assertEquals(long,long)都不明确 有人能帮忙吗 谢谢。试试这个: days = DayHelper.getInstance(

在“最后一天”块中,三个断言编译无问题<代码>字符串预期和实际的
字符串
来自数据库

红色下划线的两个字符期望
整数
,并获得一个
整数

然而,我无法摆脱下面的错误

错误:(56,19)java:org.junit.Assert中的方法assertEquals(java.lang.Object,java.lang.Object)和org.junit.Assert中的方法assertEquals(long,long)都不明确

有人能帮忙吗

谢谢。

试试这个:

days = DayHelper.getInstance().getDays();
Assert.assertNotNull(days);
Assert.assertEquals(5, days.size());

final Day day = days.get(0);
Assert.assertNotNull(day);
Assert.assertEquals("01/10/2018", day.getId());
Assert.assertEquals("Mon", day.getDay());
Assert.assertEquals(1450, day.getQuota()); //Red underlined
Assert.assertEquals(41, day.getWeekno());  //Red underlined
Assert.assertEquals("Inserted duing DayHelperTest", day.getNote());

注意数字前面的
L
?这就是我们指定在
long
值之间进行比较的方式。

当我在
assertEquals
中遇到这样的错误时,这是因为我试图断言从方法返回的
long
对象等于
long
原语值

两个参数中的任何一个都应该是基元
long
s

Assert.assertEquals(1450L, day.getQuota());
Assert.assertEquals(41L, day.getWeekno());
(如果
getQuota()
返回null,则有发生
NullPointerException
的风险,但您的测试无论如何都会失败)

或者两个参数都应该是对象

assertEquals(1450L, (long) day.getQuota());

尝试
1450L
41L
使其明确。这就成功了!!Assert.assertEquals(1450L,(长)天.getQuota());Assert.assertEquals(41L,(long)day.getWeekno());谢谢大家!!
assertEquals(Long.valueOf(1450), day.getQuota());