junit实现android单元测试
2013-09-05 13:58
316 查看
编写android业务代码的时候,我们需要测试其正确性,那就用进行各种测试,很多时候,我们都是用的 System.out.println("XXXXX") 来进行验证,但有时候,我们肉眼也不一定就能判断的准确,所以可以考虑用下junit。
JUnit是个自动化单元测试工具,能够根据你需要测试的类及其接口自动生成该类的单元测试案例,你只要根据你的需要,就输入必要的测试数据就行了,系统运行后自动判断运行是否成功。
下面我来介绍下如何使用JUnit来测试android项目。
由于android系统已经集成了JUnit框架,所以我们无需导入JUnit的jar包。
1、在AndroidManifest.xml文件中声明使用JUnit测试的包名 及加载JUnit类库代码,如下
如上图,<uses-library>标签 作用是指定该应用程序必须链接的共享类库。这个元素告诉系统该应用程序包的类装载器中所包含的类库代码。
<instrumentation> 可以理解为一种没有图形界面的,具有启动能力的,用于监控其他类(用Target Package声明)的工具类。任何想成为Instrumentation的类必须继承android.app.Instrumentation。
我们需要测试的就是项目 net.thinkeye.junitest 包下的类。
2、写好的业务类:src/net/thinkeye/junitest/PersonService.java
package net.thinkeye.junitest;
/**
* 业务类,代码很简单
* @author Johnny
*/
public class PersonService {
/**
* 取Person的方法
* 因为使用了String的substring方法,当传入字段为空时即报异常
* @param name
*/
public void getPerson(String name){
name = name.substring(8);
}
/**
* 添加Person方法
* 可以使用Assert.assertEquals来测试其返回值的正确性
* @param a
* @param b
* @return
*/
public int addPerson(int a,int b){
return a+b;
}
}
3、测试类,src/net/thinkeye/test/JTest.java 需继承 android.test.AndroidTestCase 类
package net.thinkeye.test;
import junit.framework.Assert;
import net.thinkeye.junitest.PersonService;
import android.test.AndroidTestCase;
/**
* 测试类,需继承android.test.AndroidTestCase类
* @author Johnny
*
*/
public class JTest extends AndroidTestCase{
/**
* 测试getPerson方法
* @throws Exception
*/
public void testGetPerson() throws Exception{
PersonService ps = new PersonService();
ps.getPerson(null);
}
/**
* 测试addPerson方法
* @throws Exception
*/
public void testAddPerson()throws Exception{
PersonService ps = new PersonService();
int t = ps.addPerson(2, 4);
System.out.println(t);
Assert.assertEquals(6, t);//junit.framework.Assert的作用判断t值是否等于6
}
}
4、完成以上的步骤就可以开始测试了,如下图
当传入null时报异常
输入的字符串正确时通过了测试!
addPerson方法的测试
上面就是简单的测试例子,附上代码:
本文出自 “新博客-http://cfei.net” 博客,请务必保留此出处http://johnny84.blog.51cto.com/2855387/1170498
JUnit是个自动化单元测试工具,能够根据你需要测试的类及其接口自动生成该类的单元测试案例,你只要根据你的需要,就输入必要的测试数据就行了,系统运行后自动判断运行是否成功。
下面我来介绍下如何使用JUnit来测试android项目。
由于android系统已经集成了JUnit框架,所以我们无需导入JUnit的jar包。
1、在AndroidManifest.xml文件中声明使用JUnit测试的包名 及加载JUnit类库代码,如下
如上图,<uses-library>标签 作用是指定该应用程序必须链接的共享类库。这个元素告诉系统该应用程序包的类装载器中所包含的类库代码。
<instrumentation> 可以理解为一种没有图形界面的,具有启动能力的,用于监控其他类(用Target Package声明)的工具类。任何想成为Instrumentation的类必须继承android.app.Instrumentation。
我们需要测试的就是项目 net.thinkeye.junitest 包下的类。
2、写好的业务类:src/net/thinkeye/junitest/PersonService.java
package net.thinkeye.junitest;
/**
* 业务类,代码很简单
* @author Johnny
*/
public class PersonService {
/**
* 取Person的方法
* 因为使用了String的substring方法,当传入字段为空时即报异常
* @param name
*/
public void getPerson(String name){
name = name.substring(8);
}
/**
* 添加Person方法
* 可以使用Assert.assertEquals来测试其返回值的正确性
* @param a
* @param b
* @return
*/
public int addPerson(int a,int b){
return a+b;
}
}
3、测试类,src/net/thinkeye/test/JTest.java 需继承 android.test.AndroidTestCase 类
package net.thinkeye.test;
import junit.framework.Assert;
import net.thinkeye.junitest.PersonService;
import android.test.AndroidTestCase;
/**
* 测试类,需继承android.test.AndroidTestCase类
* @author Johnny
*
*/
public class JTest extends AndroidTestCase{
/**
* 测试getPerson方法
* @throws Exception
*/
public void testGetPerson() throws Exception{
PersonService ps = new PersonService();
ps.getPerson(null);
}
/**
* 测试addPerson方法
* @throws Exception
*/
public void testAddPerson()throws Exception{
PersonService ps = new PersonService();
int t = ps.addPerson(2, 4);
System.out.println(t);
Assert.assertEquals(6, t);//junit.framework.Assert的作用判断t值是否等于6
}
}
4、完成以上的步骤就可以开始测试了,如下图
当传入null时报异常
输入的字符串正确时通过了测试!
addPerson方法的测试
上面就是简单的测试例子,附上代码:
本文出自 “新博客-http://cfei.net” 博客,请务必保留此出处http://johnny84.blog.51cto.com/2855387/1170498
相关文章推荐
- 结合junit + ant + emma实现Android项目单元测试代码覆盖率统计
- 在Android上实现Junit单元测试的四部曲
- 在Android上实现Junit单元测试的四部曲
- 在Android上实现Junit单元测试的四部曲
- junit实现android单元测试
- Android单元测试之--Junit
- Android单元测试:JUnit单元测试框架的使用
- android下的junit 单元测试
- Android:单元测试Junit的配置
- Android:单元测试Junit的配置
- android基础-单元测试—junit
- android-junit-report工具实现android下junit框架测试自动生成报告
- Junit单元测试问题 junit.framework.AssertionFailedError: Method "test" not found at android.test.AndroidTes
- Android项目中的单元测试(Junit4)
- Android:单元测试Junit的配置
- android junit 单元测试与输出日志信息查看处理
- android单元测试报错:junit.framework.AssertionFailedError: Method "xxx" not found解决方案:
- android单元测试二(JUnit框架)
- Android中使用Junit进行单元测试
- Android 使用Junit单元测试