一、Android的单元测试
昨天进行的只是简单的开发,但从今天起的开发内容比较重要。所以首先应该学习Android的单元测试。在Android工程中添加单元测试的方法:
1.向androidManifest.xml加入下面两段红色代码:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.itcast.action“ android:versionCode="1“ android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<uses-library android:name="android.test.runner" />
....
</application>
<uses-sdk android:minSdkVersion="6" />
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="cn.taobao.action" android:label="Tests for My App" />
</manifest>
这里的targetPackage必须是我们创建工程时指定的包名,也就是targetPackage指定的包要和应用的package相同。
2.单元测试类(例如public class Logtest extends AndroidTestCase)
我们的单元测试类,必须继承自AndroidTestCase类。
3.单元测试方法(例如 public void testSomething() throws Throwable)
单元测试方法必须以test开头,是public,void的
4.方法抛出异常
方法要throws Throwable异常,Throwable是Exception的父类,单元测试框架捕获Throwable。
在此方法里的异常不用trycatch的,只要throws抛出。因为
当我运行这个Logtest这个单元测试时,实际上运行:
JunitRun--》LogTest--》testSave()
JunitRun{
run(){
try{
LogTest l=new ...;
l.testSave();//抛出异常的地方
}catch{
//打印在junit控制台上面
}
}
}
5.调用测试
在outline面板或方法名上右键,Run AS Android Junit Test。
如果是debug的则在outline面板或方法名上右键,Debug AS Android Junit Test。
6.打印信息
在android中不能使用System.out.println()打印信息,但我们可以使用Android为我们提供的Log类来打印信息。可以使用Log.i打开info信息、使用Log.e打印error信息、使用Log.d打印调试信息...。
7.查看打印的信息
因为我们安装了ADT插件,所以选择菜单windows->Show View->Other...->Android->LogCat,打开 LogCat面板。在这个面板中我们可以看到Android输出的所有信息。
但我们只想查看我们自己输出的信息怎么办呢?面板的右上角有个+号,使用它可以创建一个过滤器。比如我们输入一个info信息调用Log.i(tag,”Hello Android!”),tag是信息的标签,一般使用类名。创建过滤器,将Filter Name和by Log Tag都设置为我的们的tag ,OK。它为我们创建了一个新的以tag名称的分页,在这个分页中我们可以查看过滤出来的信息。
在LogCat面板中还有V、D、I、W、E五个选择按钮,从右向左依次包含。比如我们选择D,那么下面的面板将只显示D、I、W,E这四类信息。