Инструментальный тест не соответствует идентификаторам видов из иерархии - PullRequest
0 голосов
/ 06 апреля 2019

Короче, я пытаюсь сопоставить вид с идентификатором, как R.id.signCheckbox, используя Espresso. Когда я пытаюсь сопоставить это представление, я получаю исключение NoMatchingView, когда ясно, что представление присутствует.

После некоторой отладки я обнаружил, что внутри моего тестового класса, когда я получу R.id.signCheckbox, я получу ID: -1000984. Внутри cause из NoMatchingViewException вы можете фактически прочитать всю иерархию представлений в некотором формате. Там я обнаружил, что флажок имеет другой идентификатор 2131362821. Я прочитал проект R.java, и он также присваивает 2131362821 R.id.signCheckbox.

Так что, когда я сопоставляю withId(2131362821), это на самом деле работает. Почему он не работает с R.id.signCheckbox и откуда взялся этот -1000984 id?

1 Ответ

0 голосов
/ 09 апреля 2019

Похоже, что старый добрый Invalidate / Restart / Clean / Rebuild решил проблему.

Идентификаторы по-прежнему отрицательны (например, -1000984), не совпадают с идентификаторами R.java, но Espresso будет успешно соответствовать представлениям.

...