我有一个我想测试的Android CustomView。
当n是子视图高度时,很少有测试模拟n dps的滚动。
我用robolectric进行测试,但是我总是在运行时 subView.getHeight() == 0
这是因为子视图的高度定义为 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
使用@textlayoutmode(现实(在您的测试方法上方注释。