Я пытаюсь протестировать код с помощью Robolectric.
Мой код раздувает макет, а затем пытается получить представление, вызывая findViewById
для этого макета. Инфляция макета работает нормально. Однако findViewById
в этом макете всегда возвращает значение null.
В отладчике я вижу, что все (теневые) дочерние представления раздутого макета присутствуют и имеют свои атрибуты. Но идентификатор каждого ребенка установлен на 0. Почему? Я что-то упускаю?
Фактический код на устройстве или эмуляторе (без robolectric) работает нормально, но когда я пытаюсь запустить его с помощью robolectric, происходит сбой, как описано.
В основном мой код выглядит следующим образом:
LayoutInflater inflater = (LayoutInflater) Robolectric.application.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.timeline_list_item, null);
TextView view = (TextView) layout.findViewById(R.id.listItem_date);
//why is view null here!
view.setText("test");
С уважением Фрэнк