Android单元测试与日志输出

 

AndroidTestCase

如果对要存取资源或者其他一些依赖于Activity上下文的操作进行单元测试,则需扩展AndroidTestCase接口(Extend this if you need to access Resources or other things that depend on Activity Context.

 1 
2 public class testServiceApp extends AndroidTestCase
3 {
4 public void testXXX() throws Exception
5 {
6 //具体测试操作的代码 ,可以对要测试的类,方法操作
7 //Log.i();
8 }
9  }



配置AndroidManifest.xml

在application标签的内部即与Activity标签同级的位置添加单元测试库:

 

<uses-library android:name="android.test.runner" />



然后在与application标签同级的位置添加下面的

 

1 <instrumentation android:name="android.test.InstrumentationTestRunner" 
2 android:targetPackage="com.aven.unitTest" android:label="Tests for My App" />

其中:targetPackage="com.aven.unitTest"根据测试类所在位置而定,同时在很多教程中都有提到它必须和

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.aven.unitTest"

这里面的包名一致.

测试

如果运行整个测试文件,则在资源导航按右击文件,选择“运行方式”--->“Android Junit Test”,如果仅仅运行某个测试函数,则将光标定位函数名右击,选择“运行方式”--->“Android Junit Test”,这样Eclipse会将它们部署到Android模拟器上,在Junit窗口可以看到测试信息,红色当然说明测试出现问题,根据提示查找问题就OK了。image

日志输出

为了方便查找在测试函数中可以使用Log来输出某些信息,这样程序运行时,就可以很清楚的知道那一段代码没有正常运行或者说没有达到我们的预期目的。

关于这个Log,官方文档是这么写的

Generally, use the Log.v() Log.d() Log.i() Log.w() and Log.e() methods.

The order in terms of verbosity, from least to most is ERROR, WARN, INFO, DEBUG, VERBOSE. Verbose should never be compiled into an application except during development. Debug logs are compiled in but stripped at runtime. Error, warning and info logs are always kept.

也就是说我们通常使用他的三种方法,Log.v() Log.d() Log.i() Log.w() and Log.e() 来输出信息,分别表示错误,警告,信息,调试,冗长。一般可以用Log.i() 来输出信息。使用起来很方便,先给输出取个标记,可以任意,下面的例子中字符串标记MyActivity被声明为一个静态的字符串常量,这也是官方推荐的通行写法:

1 private static final String TAG = "MyActivity";
2 Log.v(TAG, "index=" + i);

然后在Logcat视图里面添加一个过滤器,就可以迅速筛选出要看到的信息:

image

posted @ 2012-01-18 20:53  小文字  阅读(5780)  评论(0编辑  收藏  举报