Имитация кликов по элементам с помощью Robolectric

Я полагал, что этот тип вопроса уже был задан, но я не могу найти ответ, который делает то, что мне нужно. У меня есть ExpandableListView, и последний дочерний элемент в каждой группе доступен для кликов. Мне нужно имитировать щелчок по этому конкретному элементу, который является третьим дочерним элементом. Я пробовал варианты .performClick и .dispatchTouchEvent, но у меня ничего не получилось. В основном мне нужно вызвать прослушиватель группы onChildClick и убедиться, что выбранный элемент является последним. Любые идеи? Дайте мне знать, если я могу добавить какую-либо информацию.

Примечание. Я использую калькулятор покрытия кода, поэтому я знаю, что слушатель не вызывается. Я использую robolectric для запуска модульных тестов.

Кроме того, мне нужно сделать что-то подобное для графического представления с aChartEngine, где он будет имитировать щелчок по определенной области кольцевой диаграммы. Любое понимание этого также будет оценено.


person user2483079    schedule 23.07.2013    source источник


Ответы (2)


Выглядит похоже на другой вопрос. Попробуйте вспомогательный метод PerformItemClick:

Robolectric.shadowOf(expandableListView).performItemClick(position); 
person Daniel    schedule 04.02.2014

Начиная с Robolectric 3.0 изменился API. Теперь вам нужно вызвать это, чтобы имитировать щелчок по элементу:

...    
Shadows.shadowOf(yourListInstance).performItemClick( index );
...
person Tano    schedule 31.01.2017