编写android业务代码的时候,我们需要测试其正确性,那就用进行各种测试,很多时候,我们都是用的 System.out.println("XXXXX") 来进行验证,但有时候,我们肉眼也不一定就能判断的准确,所以可以考虑用下junit。

JUnit是个自动化单元测试工具,能够根据你需要测试的类及其接口自动生成该类的单元测试案例,你只要根据你的需要,就输入必要的测试数据就行了,系统运行后自动判断运行是否成功。

下面我来介绍下如何使用JUnit来测试android项目。

由于android系统已经集成了JUnit框架,所以我们无需导入JUnit的jar包。

1、在AndroidManifest.xml文件中声明使用JUnit测试的包名 及加载JUnit类库代码,如下

junit实现android单元测试_第1张图片

如上图,标签 作用是指定该应用程序必须链接的共享类库。这个元素告诉系统该应用程序包的类装载器中所包含的类库代码。

可以理解为一种没有图形界面的,具有启动能力的,用于监控其他类(用Target Package声明)的工具类。任何想成为Instrumentation的类必须继承android.app.Instrumentation。

我们需要测试的就是项目 net.thinkeye.junitest 包下的类。

 

2、写好的业务类:src/net/thinkeye/junitest/PersonService.java

   
   
   
   
  1. package net.thinkeye.junitest; 
  2.  
  3. /** 
  4.  * 业务类,代码很简单 
  5.  * @author Johnny 
  6.  */ 
  7. public class PersonService { 
  8.      
  9.     /** 
  10.      * 取Person的方法 
  11.      * 因为使用了String的substring方法,当传入字段为空时即报异常 
  12.      * @param name 
  13.      */ 
  14.     public void getPerson(String name){ 
  15.         name = name.substring(8); 
  16.     } 
  17.      
  18.     /** 
  19.      * 添加Person方法 
  20.      * 可以使用Assert.assertEquals来测试其返回值的正确性 
  21.      * @param a 
  22.      * @param b 
  23.      * @return 
  24.      */ 
  25.     public int addPerson(int a,int b){ 
  26.         return a+b; 
  27.     } 
  28.  

3、测试类,src/net/thinkeye/test/JTest.java 需继承 android.test.AndroidTestCase 类

   
   
   
   
  1. package net.thinkeye.test; 
  2.  
  3. import junit.framework.Assert; 
  4.  
  5. import net.thinkeye.junitest.PersonService; 
  6. import android.test.AndroidTestCase; 
  7.  
  8. /** 
  9.  * 测试类,需继承android.test.AndroidTestCase类 
  10.  * @author Johnny 
  11.  * 
  12.  */ 
  13. public class JTest extends AndroidTestCase{ 
  14.     /** 
  15.      * 测试getPerson方法 
  16.      * @throws Exception 
  17.      */ 
  18.     public void testGetPerson() throws Exception{ 
  19.         PersonService ps = new PersonService(); 
  20.         ps.getPerson(null); 
  21.     } 
  22.      
  23.     /** 
  24.      * 测试addPerson方法 
  25.      * @throws Exception 
  26.      */ 
  27.     public void testAddPerson()throws Exception{ 
  28.         PersonService ps = new PersonService(); 
  29.         int t = ps.addPerson(24); 
  30.         System.out.println(t); 
  31.         Assert.assertEquals(6, t);//junit.framework.Assert的作用判断t值是否等于6 
  32.     } 

4、完成以上的步骤就可以开始测试了,如下图

 

junit实现android单元测试_第2张图片

 

 

当传入null时报异常

junit实现android单元测试_第3张图片

 

 

 

 

输入的字符串正确时通过了测试!

junit实现android单元测试_第4张图片

 

 

addPerson方法的测试

 

junit实现android单元测试_第5张图片

 

 

上面就是简单的测试例子,附上代码: