假设你正在编写Android服务代码,而且,又要时不时的重构代码,那么,有效的方式是添加自动测试用例。在写过一个简单的sample以后,发现确实很容易,下面我google的一些资料,关于如何在Android上自动测试类,通常是下面的服务类。有一点值得提的是,测试的速度比较慢,毕竟是在仿真器上运行的缘故。
1.Test Drived Develop, http://baike.baidu.com/view/76310.htm
TDD的基本思路是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。
2.Eclipse下使用JUNIT,http://down.dns.sh.cn/article/236/285/2005/200509128774.asp
3.Android下的测试:
Android---jUnit测试环境,http://tdq222.javaeye.com/blog/700390
android中junit测试类的编写,http://wangjun.easymorse.com/?p=238
Android、JUnit深入浅出(六)——如何运行单元测试?http://www.moandroid.com/?p=1223
自动测试的大致步骤如下:
3.1添加继承AndroidTestCase的TestCase类,并添加要测试的代码,可以添加任意函数,如testHello(),该函数会被测试框架自动执行。
3.2在manifest中添加相关代码:
1: "1.0" encoding="utf-8"?>
2: "http://schemas.android.com/apk/res/android"
3: package="com.hello"
4: android:versionCode="1"
5: android:versionName="1.0">
6: "@drawable/icon" android:label="@string/app_name">
7: "android.test.runner" />
8: ".HelloActivity"
9: android:label="@string/app_name">
10:
11: "android.intent.action.MAIN" />
12: "android.intent.category.LAUNCHER" />
13:
14:
15:
16: "android.test.InstrumentationTestRunner"
17: android:targetPackage="com.hello"
18: android:label="Tests for My App" />
19: "android.permission.ACCESS_NETWORK_STATE" />
20: "android.permission.READ_CONTACTS" />
21: "android.permission.WRITE_CONTACTS" />
22:
注意:主要在Application节点下添加users-library节点,以及instrumentation节点。而且,instrumentation的android:targetPackage的值要和manifest的package属性一样。