Android 使用 Junit进行单元测试

JUnit单元测试

简介:

在我们开发android app的时候,需要不断地进行测试,所以使用JUnit测试框架显得各位重要

是企业级开发的常用手段,学会JUnit可以加快应用的开发周期,可以理解为一种测试的工具吧

 

 

废话不多说,下面就介绍一下如何使用JUnit进行单元测试

建立JUnit测试的两种方法
一.直接在需要被测试的工程中新建测试类

1.先在androidManifest.xml文件中添加以下代码:

                 写在application标签里哦,别写错地方,写到activity中哦!     <uses-library android:name="android.test.runner"/>

   接着在manifest标签,application后面写上以下代码:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <instrumentation android:name="android.test.InstrumentationTestRunner"  
  2.         android:targetPackage="com.jay.junitest"  
  3.         android:label="Demo for JUnittest"/>  


 name那是固定写法,targetPackage是要测试的工程,既包,可以直接复制app manifest中的  package="com.jay.junitest"

label只是测试的名称,可写可不写

 

 

2.新建一个测试测试类,继承AndroidTestCase类,然后写你在类中写下你要测试的方法,比如测试一个加法的方法:testadd()就是在需要测试的方法

   前加上test即可

 

 

3.点击右面的大纲视图,选择要测试的方法,右键,run as --->Android JUnit test---->稍等片刻即可,接着查看测试后的信息即可

 

 

实例演示:

注意:以下步骤是在配置好测试环境的情况下进行的,即前面的androidManifest.xml的配置

1.先创建一个需要被我们测试的类:(代码比较简单,方便理解)

demo.java:

 

代码:

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. package com.jay.testmodel;  
  2.   
  3. public class demo {  
  4.     //这里定义一个减法函数,我们等下再测试方法中,判断返回的结果是否与我们预想的结果一样  
  5.     public int sub(int a,int b) {  
  6.         return a - b;  
  7.     }  
  8.       
  9.     //这里定义一个截取字符串的方法,我们再测试类中传入一个空值,查看测试的结果  
  10.     public void subString(String string) {  
  11.         string.substring(3);  
  12.     }  
  13. }  


 

2.创建一个测试类

这个类要继承AndroidTestCase类

 

创建后,一个好的习惯是每个测试方法都抛出异常:throws Exception

代码实例:demotest.java

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. package com.jay.test;  
  2.   
  3. import junit.framework.Assert;  
  4.   
  5. import com.jay.testmodel.demo;  
  6.   
  7. import android.test.AndroidTestCase;  
  8.   
  9. public class demotest extends AndroidTestCase {  
  10.     public void testsub()throws Exception{  
  11.         demo de = new demo();  
  12.         int equals = de.sub(31);  
  13.         //这里用到的了断言,判断是否与我们断定给的值相等  
  14.         Assert.assertEquals(2, equals);  
  15.     }  
  16.       
  17.     public void testsubString()throws Exception {  
  18.         demo de = new demo();  
  19.         de.subString(null);  
  20.     }  
  21. }  


ps:在testsub方法中我们使用到了断言,部分同学可能听过这东西,知道这个是断言,不过仅仅是知道有这东东,但是却不知道是拿来做什么的,这里科普以下:

在我们写代码的时候,我们总会习惯性地给出一些假设,断言就是在代码中捕捉这些假设,是一种布尔表达式

通常我们在测试的时候启用断言,而部署时禁用断言,程序投入运行后,最终用户在遇到问题是可以重新启用断言

                                                                                                                                                        ---------摘抄自度娘

 

简单来说的话,就是我们不打算通过捕获异常来处理错误,这个时候用到断言:

Assert.assertEquals(2,equals)        这是一个断言语句

如果2 == equals的话,结果为真,程序继续执行,否则程序马上结束

 

这里无需纠结,简单理解成判断是否相等即可,关于断言的详细内容可自己谷歌或者度娘

 

 

3.通过大纲视图运行测试方法:

右键:

 

 

运行后稍等片刻即可:

左边会出现这个框框:

 

 

绿色表示测试通过,在代码中我们测试的时3-2是否 == 1,所以结果肯定是通过的,如果我们把assertequals()中的1改为5的话

 

会出现以下结果:

 

红色说明测试没通过,点击下面的错误项可以定位到出错的代码行

 

 

 

 

接着我们测试第二个截取字符串的方法,运行结果:同样是红色

 

 

虽然图片很多,但是真的很简单,各位读者可以按照这个流程试试,动手才是掌握知识的最快途径!!!

 

 

二.专门创建一个用于测试的工程(!!推荐,这样可以降低代码的耦合度)

流程:1.新建工程,选择new ---- >   other  ---->android Test Project

 

2.选择要测试的工程:

 

 

3.接着和第一种建立测试类的方法是一样的,这里比较简单就略过了

PS:如果使用这种方法的话,androidManifest.xml中已经自动配置好相关的参数,无需在进行配置,比较方便

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值