package com.android_textbook.learnjunit.task; import java.util.ArrayList; import java.util.List; import com.android_textbook.learnjunit.task.SimpleCountUpTask; import android.test.InstrumentationTestCase; public class SimpleCountUpTaskTest extends InstrumentationTestCase { public static class SimpleCountUpTaskEx extends SimpleCountUpTask { private List<Integer> progress = new ArrayList<Integer>(); private Integer result; @Override protected void onProgressUpdate(Integer... values) { progress.add(values[0]); } @Override protected void onPostExecute(Integer result) { this.result = result; } } public void testSuccessPattern() throws Exception { SimpleCountUpTaskEx task = new SimpleCountUpTaskEx(); task.execute(10); // タスクを実行 task.get(); // 停止するまで待つ // onProgressUpdate経由で通知された値が想定通りであることを確認する assertEquals(10, task.progress.size()); assertEquals(1, task.progress.get(0).intValue()); assertEquals(2, task.progress.get(1).intValue()); // 3〜9は省略 assertEquals(10, task.progress.get(9).intValue()); // onPostExecute経由で通知された値が想定通りであることを確認する assertEquals(55, task.result.intValue()); } }