已经搜索了一段时间,但找不到答案。假设我使用这样的onCreate方法进行此活动:

private ListView mListView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_view);
    mListView = (ListView) findViewById(R.id.list_view);
}


我有一个扩展ActivityInstrumentationTestCase2的测试类。在测试活动中调用onCreate(null)后,如何测试是否调用setContentView并将其设置为正确的资源?

private someActivity mActivity;
protected void setUp() throws Exception {
  super.setUp();
  mActivity = getActivity();
}

public void testOnCreate() {
  assertNull(mActivity.findViewById(R.id.list_view));
}

最佳答案

以下代码应使用setContentView()返回视图集:

View getContentView() {
    ViewGroup view = (ViewGroup) getWindow().getDecorView();
    view.getChildAt(0);
}


编辑:

或者,如果布局中的顶层视图已设置其ID,则可以检查findViewById(rootId)是否在测试代码中返回非null。

07-28 02:07
查看更多