我的活动中有以下代码:
protected void load() {
getLoaderManager().restartLoader(0, null, this);
}
@Override
public Loader<BaseResource[]> onCreateLoader(int id, Bundle args) {
final AsyncTaskLoader<BaseResource[]> loader = new AsyncTaskLoader<BaseResource[]>(this) {
// ....
};
loader.forceLoad();
loaderView.setVisibility(VISIBLE);
return loader;
}
@Override
public void onLoadFinished(Loader<BaseResource[]> loader, BaseResource[] data) {
loaderView.setVisibility(GONE);
}
我想测试装载过程中是否真正显示了loaderView。我使用 Espresso 工具,我有以下测试方法:
@SmallTest
public void testShowLoading() {
getActivity().load();
assertTrue(getActivity().findViewById(R.id.loading_view).getVisibility() == View.VISIBLE); // can't use espresso here since it waits for the loader to finish.
}
但是这个解决方案是片状的,有时加载器完成得太快而且断言失败了。如何让装载机运行更长时间以进行测试?有没有办法在不修改活动代码的情况下这样做?