非常基本的LoaderTestCase卡在getLoaderResultSynchronously中

时间:2013-08-26 21:17:24

标签: android testing asynchronous junit asynctaskloader

我是Loaders的新用户,我正在尝试测试AsyncTaskLoader中最基本的LoaderTestCase。但是getLoaderResultSynchronously永远不会完成。这是整个班级:

public class LoaderTest extends LoaderTestCase{

    public void testLoader() {
        String result = getLoaderResultSynchronously(new AsyncTaskLoader<String>(getContext()){

            @Override
            public String loadInBackground() {
                return "hello";
            }

        });

        assertEquals(result, "hello");
    }
}

我错过了什么?

1 个答案:

答案 0 :(得分:2)

通过参数传递的 getLoaderResultSynchronously()调用 startLoading() stopLoading()方法。你必须实现它。

public final void testLoader() {
    String result = loader.getLoaderResultSynchronously(new AsyncTaskLoader<String>(
            getContext()) {

        @Override
        public String loadInBackground() {
            return "hello";
        }

        /* (non-Javadoc)
         * @see android.content.Loader#onStartLoading()
         */
        @Override
        protected void onStartLoading() {
            // TODO Auto-generated method stub
            forceLoad();
        }
        /* (non-Javadoc)
         * @see android.content.Loader#onStopLoading()
         */

        @Override
        protected void onStopLoading() {
            // TODO Auto-generated method stub
            cancelLoad();

        }



    });