У меня есть AndroidView CustomView, который я хочу протестировать.
Немногие из тестов имитируют прокрутку N dps, когда N - высота subView.
Я запускаю тесты с помощью robolectric,но я всегда получаю во время выполнения, что subView.getHeight() == 0
Это потому, что высота subView определена как wrap_content
, и я предполагаю, что robolectric не раздувает все представления, чтобы получить эту точную информацию.
Например, subView.getWidth > 0
определен как match parent
.
Вот мой метод теста @before
:
@Before
public void setUp() {
myView.getHeaderView().getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
myHeight =
myView.getHeaderView().getHeight();
}
});
activityScenarioRule
.getScenario()
.onActivity(activity -> activity.setContentView(myView));
activityScenarioRule.getScenario().moveToState(State.RESUMED);
}
Как я все еще могу получить высоту содержимого переноса во время выполнения теста?
Код вызывает onGlobalLayout
, но возвращает height==0