Неоднозначные ссылки на assertEquals - PullRequest
0 голосов
/ 05 октября 2018
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 неоднозначна в обоих методах assertEquals (java.lang.Объект, java.lang.Object) в org.junit.Assert и метод assertEquals (long, long) в org.junit.Assert match

Может кто-нибудь помочь, пожалуйста.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Когда я получаю подобные ошибки с assertEquals, это потому, что я пытаюсь утверждать, что объект Long, возвращаемый методом, равен long примитивному значению.

Либо оба аргументадолжно быть примитивным long s

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

(что может NullPointerException, если getQuota() вернет ноль, но ваш тест все равно будет неудачным)

Или оба аргумента должны быть объектами

assertEquals(Long.valueOf(1450), day.getQuota());
0 голосов
/ 05 октября 2018

Попробуйте:

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

Обратите внимание на L перед числами?именно так мы указываем, что сравнение выполняется между long значениями.

...