android.content.Loader Test Case Using android.test.LoaderTestCase

2011-12-19T00:00:00+00:00 Android Java

例えば

SampleLoader.java

package sample.test;

import android.content.Context;
import android.content.CursorLoader;
import android.database.Cursor;
import android.database.MatrixCursor;

public class SampleLoader extends CursorLoader {

    public SampleLoader(Context context) {
        super(context);
    }

    @Override
    public Cursor loadInBackground() {
        Cursor csr  = null;

        try {
            MatrixCursor mc = new MatrixCursor(new String[]{ "_id", "NAME" });
            mc.addRow(new Object[] { 1, "hoge" });
            mc.addRow(new Object[] { 2, "fuga" });
            mc.addRow(new Object[] { 3, "foobar" });

            csr = mc;
        } catch(Exception e) {
            e.printStackTrace();
        }

        return csr;
    }
}

的な感じで作っといて、これをテストする方法ですが。普通にLoaderTestCaseっていうのがあるので

SampleLoaderTestCase.java

package sample.test;

import android.database.Cursor;
import android.test.LoaderTestCase;

public class SampleLoaderTestCase extends LoaderTestCase {

    public void test() {
        Cursor csr = getLoaderResultSynchronously(new SampleLoader(getContext()));
        assertNotNull(csr);
        assertEquals(csr.getCount(), 3);

        // 以降省略
    }
}

的な感じでテスト出来るみたいっすね。やり方あってるかどうかは知らんけど

XMLHttpRequest.prototype.open by Unit Test Remove QueryString by nginx rewrite