robolectric返回0高度,以供包装内容高度的视图



我有一个我想测试的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(现实(在您的测试方法上方注释。

最新更新