暂停装载机以进行测试

时间:2014-09-25 09:13:14

标签: android testing android-asynctask android-espresso

我的活动中有以下代码:

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.
}

但是这个解决方案是片状的,有时加载器完成得太快而且断言失败了。如何让装载机运行更长时间以进行测试?有没有办法在不修改活动代码的情况下这样做?

0 个答案:

没有答案