现在写程序写着写着对自己写的程序就没有信心了,代码量的上升,逻辑越来越复杂,非常需要单元测试(Unit Test)。现在感觉没有单元测试和版本控制,一个项目很容易崩溃。对程序的一点修改很可能会影响整个项目的实现。之前单元测试只是用过JUnit 。现在让我们来看下Android 中的单元测试是如何实现的。
当然最佳指导是Android的官方网站,http://developer.android.com,点击搜索 unit test,就到了测试的主页http://developer.android.com/guide/topics/testing/index.html。这里写的一系列的单元测试充其量就是对上面的翻译和实践。
主要会涉及下面的四个方面:
2.Android Activity 测试(涉及到控件,和Activity生命周期)
3.Android Content Provider 测试
1.普通Java类中的Function测试(实战)
先新建一个普通的Android 项目(HelloAndroid),里面多一个自定义的类(MyClass),类里有一个实现加法的方法sum(int a,int b),我们就来测试下这个加法能不能正常工作。
建好的项目结构是这样的:
MyClass.java 的内容非常简单,如下面的代码所示:
谁都知道这个方法不会有错,但是我们这里的目的是为了知道如何使用单元测试,所以都先不要对这个类太深究了,还是要对它进行测试。
接下来是建立一个Android Test的项目
输入好名称后的下一步,就是要选择我们要测试的目标项目,这里我们当然选择HelloAndroid
建立完后的项目结构:
我们注意到自动生成的包名称为com.waitingfy.android.test,就是比我们测试目标多了个test,当然你也可以打开AndroidMainfest.xml查看,里面有targetPackage。
好了,开始写我们的测试类,记得这个类要继承TestCase,后面我们还会讲到AndroidTestCase,和ServiceTestCase。
src/com.waitingfy.android.test/TestMyClass.java,我一般用这样的命名,比较容易看出具体那个类出错了。
写好后就可以运行这个测试项目了,运行方法:
运行后,要稍微等几秒钟时间,Eclipse 会尝试编译两个项目HelloAndroid和HelloAndroidTest到手机或模拟器手机中,如果你进行任何修改,运行Android Junit Test,它还是会重新编译两个项目的。因为HelloAndroidTest是没有放到手机桌面上的,所以看不到,在管理应用程序当中还是可以看到的。
发现结果我们的testSum没有通过,=。=,查看了失败的记录,发现我们估计的值错了,应该是int 的2 ,把TestMyClass.java中的
修改为:
,就成功了,界面是绿色的。
好了先到这里。:)