我们可以使用JUnit框架对android应用程序进行单元测试,使用方法和标准版java完全相同。
单元测试主要是测试一个应用程序中独立工作的的一个类,测试级别相对较低。
本文将对android应用程序的单元测试做一个简单的介绍.
Android版JUnit框架和标准版不同的地方主要是我们需要继承AndroidTestCase,而不是TestCase,android版提供了一些android特有的方法,如android中常用的getContext()等。
让我们来看一个简单的例子:
1、创建一个android项目,如下图所示:
单击“下一步”时,会让您选择是否创建一个test project,我们选中它,如下图所示:
最后单击“完成”,即同时创建了两个eclipse项目,如下图所示:
这样我们就可以在AndroidJunitTestTest项目中测试AndroidJunitTest项目中的代码。
我们在AndroidJunitTest中新建一个类,如下所示:
package com.ideasandroid.demo;public class ClassToTest { public int add(int arg1, intarg2) { return arg1 + arg2; } }
然后,我们开始在AndroidJunitTestTest项目中对这个类进行测试。
在com.ideasandroid.demo.test包单击“右键”,new->JUnit Test Case新建一个测试用例,注意将junit.framework.TestCase换成android.test.AndroidTestCase,选 择setUp()和tearDown()两个方法让系统自动生成,如下图所示:
单击“完成”后,代码如下所示:
package com.ideasandroid.demo.test; import android.test.AndroidTestCase; public classIdeasandroidTestCase extends AndroidTestCase {protected void setUp() throws Exception {super.setUp(); } protected void tearDown() throws Exception { super.tearDown(); } }
下面我们增加一个测试方法,在setUp()中做一些初始化工作,如下所示:
package com.ideasandroid.demo.test;import com.ideasandroid.demo.ClassToTest; importandroid.test.AndroidTestCase; public class IdeasandroidTestCase extends AndroidTestCase {ClassToTest mClassToTest; int mArg1; int mArg2; protected void setUp() throws Exception {mClassToTest = new ClassToTest(); mArg1 = 120; mArg2 = 8; super.setUp(); } protected voidtearDown() throws Exception { super.tearDown(); } public void testAdd() { assertEquals(128, mClassToTest.add(mArg1, mArg2)); } }
然后,我们以Android JUnit Test(Run as——>Android JUnit Test)方式运行上面的类,您就将看到如下所示:
怎么样? 调试成功了吗?