背景
之前一直想看一下安卓里的单元测试,如今记录一下学习过程,内容并不多,因为Android Studio已经给我们做好了大部分工作,gradle导包、清单文件中引入都不用我们管了,直接创建类、创建方法就可以
Java单元测试
在test目录下,随便新建一个类
而后随便定义一个方法,但要用上@Test注解,里面写上我们要测试的东西
public class MyTest {
@Test
public void myTest() {
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.addAll(Arrays.asList(1,3,2,7,4));
System.out.println(arrayList);
}
}
而后点击左边的绿色箭头,因为之前我测试过了,所以绿色箭头变成了绿色重启的标志,点它就是,而后在出来的对话框里,选择run
之后就会在下面,显示输出内容了
Android单元测试
Android单元测试和java单元测试差不多,同样是要新建一个类,但这里是在上面的androidTest目录中,而且新建的类要继承自InstrumentationTestCase,而后要测试的方法不用加上@Test注解,但要以test开头
public class TestClass extends InstrumentationTestCase { // 继承自IntrumentationTestCase
public static final String TAG = "TestClass";
public void testMethod() { // 方法以test打头
List<String> letters = new LinkedList<>();
letters.add("a");
letters.add("b");
letters.add("c");
letters.add("d");
letters.add("e");
letters.add("f");
//parallelStream():并行流
letters.parallelStream().filter(s -> {
Log.i(TAG, "filter:" + s + "--thread name:" + Thread.currentThread().getName());
return true;
}).map(s -> {
Log.i(TAG, "map:" + s + "--thread name:" + Thread.currentThread().getName());
return s.toUpperCase();
}).forEach(s -> {
Log.i(TAG, "forEach:" + s + "--thread name:" + Thread.currentThread().getName());
});
//D A C E B F
//D B C E A F
//D F E A B C
//...随机运行
letters.stream().forEach(s -> {
Log.i(TAG, "forEach:" + s);
});
}
}
而后也是点击左边的运行按钮,选择运行设备
看到下面显示test passed,就说明运行成功了,查看结果是在logcat里面查看
结语
不过,我觉得安卓开发还是通过把项目跑起来调试的方式测试直接一些