?
一、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这四类信息。
?