已经搜索了一段时间,但找不到答案。假设我使用这样的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。