android.content.Loader Test Case Using android.test.LoaderTestCase
例えば
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);
// 以降省略
}
}
的な感じでテスト出来るみたいっすね。やり方あってるかどうかは知らんけど