繁体   English   中英

对assertEquals的模糊引用

[英]Ambiguous references to assertEquals

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:引用assertEquals模棱两可org.junit.Assert中的方法assertEquals(java.lang.Object,java.lang.Object)和org.junit.Assert中的方法assertEquals(long,long)比赛

请有人帮忙。

谢谢。

当我用assertEquals遇到这样的错误时,这是​​因为我试图断言从方法返回的Long对象等于long基本值。

这两个参数都应为原始long s

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

(如果getQuota()返回null,但可能会导致NullPointerException风险,但是您的测试仍然会失败)

或两个参数都应该是对象

assertEquals(Long.valueOf(1450), day.getQuota());

尝试这个:

Assert.assertEquals(1450L, day.getQuota());
Assert.assertEquals(41L, day.getWeekno());

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM