Та же модель не равна - PullRequest
       67

Та же модель не равна

0 голосов
/ 07 марта 2020

Я покрывал свое приложение JUnitTest, чтобы проверить мою комнату и как документацию

@Test
    public void writeCompanyAndReadInList() throws Exception {
        // Insert the company
        Company company = TestUtil.createCompany("MobOS2018");
        mCompanyDao.insertCompany(company);

        // Get the company
        LiveData<List<Company>> byName = mCompanyDao.getCompanies("MobOS2018 AND id =1");

        // Check if the two objects are equals
        assertEquals("Should be equal", byName.getValue().get(0), company);
    }

Мой тест:

@Test
    public void writeUserAndReadInList() throws Exception {
    HistoryModel historyModel = TestUtil.createHistory(0,"21","3123",22-3-5L);
    mHistoryDao.save(historyModel);
    List<HistoryModel> byName = mHistoryDao.getAll();

    Log.e("-----------i", byName.get(0).getId()+" - "+historyModel.getId());
    Log.e("-----------d", byName.get(0).getDistance()+" - "+historyModel.getDistance());
    Log.e("-----------t", byName.get(0).getTime()+" - "+historyModel.getTime());
    Log.e("-----------c", byName.get(0).getCurrentTimeDate()+" - "+historyModel.getCurrentTimeDate());
    Log.e("-----------c", byName.get(0)+" - "+historyModel);
    Log.e("-----------eq", byName.get(0).toString().trim().equals(historyModel.toString().trim())+"");

    assertEquals(byName.get(0), historyModel);

и журнал:

E/-----------i: 0 - 0
E/-----------d: 21 - 21
E/-----------t: 3123 - 3123
E/-----------c: 14 - 14
E/-----------c: com.fitnesstracker.model.HistoryModel@e803247 - com.fitnesstracker.model.HistoryModel@5d13a74
E/-----------eq: false

Я зарегистрировал все поля модели, и они равны, но я продолжаю получать ошибку, что они не равны (

java.lang.AssertionError: expected:<com.myApp.model.HistoryModel@e3b4c6e>
but was:<com.myApp.model.HistoryModel@b9d3f0f>

1 Ответ

1 голос
/ 07 марта 2020

вам нужно перезаписать hashCode и equals, по умолчанию равно основано на внутреннем идентификаторе объекта (та же ссылка).

Объекты сохранены и загружены не одна и та же ссылка. Это два разных объекта с одинаковыми значениями, но вы не определили с перезаписью equals, что это следует рассматривать как equals, а не на основе проверки ссылок.

...