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());
在“最后一天”块中,三个Asserts毫无问题地进行了编译...预期String
,而实际的String
来自数据库
用红色下划线标记的两个期望Integer
并得到Integer
。
但是,我无法摆脱下面的错误!!!
错误:(56,19)Java:对org.junit.Assert中的assertEquals(java.lang.Object,java.lang.Object)方法和org中的assertEquals(long,long)方法的引用都不明确。 junit.Assert match
有人可以帮忙吗?
谢谢。
答案 0 :(得分:1)
当我遇到assertEquals
这样的错误时,是因为我试图断言从方法返回的Long
对象等于long
基本值。
两个参数都应为原始long
s
assertEquals(1450L, (long) day.getQuota());
(如果NullPointerException
返回null,则有getQuota()
的风险,但是您的测试仍然会失败)
或者两个参数都应该是对象
assertEquals(Long.valueOf(1450), day.getQuota());
答案 1 :(得分:0)
尝试一下:
Assert.assertEquals(1450L, day.getQuota());
Assert.assertEquals(41L, day.getWeekno());
注意到数字前面的L
吗?这就是我们指定在long
个值之间进行比较的方式。