猿问

对 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());

在“最后一天”块中,三个断言编译没有问题......String预期和实际String来自数据库


红色下划线的两个期望Integer并获得Integer.


但是,我无法摆脱下面的错误!!!


错误:(56, 19) java:对 assertEquals 的引用是不明确的 org.junit.Assert 中的方法 assertEquals(java.lang.Object,java.lang.Object) 和 org.junit.Assert 中的方法 assertEquals(long,long)比赛


有人可以帮忙吗。


江户川乱折腾
浏览 448回答 2
2回答

一只斗牛犬

当我遇到这样的错误时assertEquals,这是因为我试图断言Long从方法返回的对象等于long原始值。要么两个参数都应该是原始long的assertEquals(1450L, (long) day.getQuota());(这可能会导致NullPointerExceptionifgetQuota()返回 null,但无论如何您的测试都会失败)或者两个参数都应该是对象assertEquals(Long.valueOf(1450), day.getQuota());

天涯尽头无女友

尝试这个:Assert.assertEquals(1450L, day.getQuota());Assert.assertEquals(41L, day.getWeekno());注意到L前面的数字了吗?这就是我们指定在long值之间进行比较的方式。
随时随地看视频慕课网APP

相关分类

Java
我要回答