Android配置 常规单元测试

Android单元测试分为两个部分, 一部分是与Android本身无关的测试,也就是业务逻辑测试,该部分测试不涉及Activity这一层,我们暂且成为常规的单元测试。另外的一种测试就是于Activity相关的单元测试

这里,我们先谈一下于Activity无关的常规单元测试


在通常情况下,我们会选择在需要添加测试用例的类上边点击右键,选择new/JUnitTestCase然后,Eclipse会跳出一个让你选择添加测试用例的基本信息。比如类名,包名什么的。添加完毕后,然后在自动产生的方法上点击右键 run as /Junit Test.这时候,会出现一个错误

Internal Error (classFileParser.cpp:3161), pid=5320,tid=6952

#  Error:ShouldNotReachHere()


下面说一下详细步骤

1 创建项目DroidUnitTest。

 在包中加入处理业务逻辑的类MyDataHelper ,在里边添加一个方法(内容随意)。新建 名为test 的sourcefolder,添加测试包。然后在MyDataHelper上右键,选择new/JUnitTestCase .填写包名,类名等信息,点击ok,如图所示。



2. 在MyDataHelper中添加如下方法

public class MyDataHelper {  
  
    public int add(int a ,int b){  
        return a+b;  
    }  
}

在MyDataHelperTest中添加如下内容

import org.junit.After;  
import org.junit.AfterClass;  
import org.junit.Assert;  
import org.junit.Before;  
import org.junit.BeforeClass;  
import org.junit.Test;  
import henu.cjt.mobile.*;  
  
public class MyDataHelperTest {  
  
    @BeforeClass  
    public static void setUpBeforeClass() throws Exception {  
    }  
  
    @AfterClass  
    public static void tearDownAfterClass() throws Exception {  
    }  
  
    @Before  
    public void setUp() throws Exception {  
    }  
  
    @After  
    public void tearDown() throws Exception {  
    }  
      
    MyDataHelper  myDataHelper=new MyDataHelper();  
      
    @Test  
    public void addTest(){  
        int a=1;  
        int b=1;  
        int res= myDataHelper.add(a,b);  
        Assert.assertEquals(2,res);  
    }  
  
}

在 addTest点击鼠标右键,选择runas JuitTest,你会收到如下错误

#

# A fatal error has been detected by the Java RuntimeEnvironment:

#

#  Internal Error(classFileParser.cpp:3161), pid=5320, tid=6952

#  Error:ShouldNotReachHere()

#

# JRE version: 6.0_22-b04

# Java VM: Java HotSpot(TM) Client VM (17.1-b03 mixedmode windows-x86 )

# An error report file with more information is saved as:

#D:\eclipse_develope\workspace\DroidUnitTest\hs_err_pid5320.log

#

# If you would like to submit a bug report, please visit:

#  http://java.sun.com/webapps/bugreport/crash.jsp

#

 

不用担心,这是因为Android默认运行单元测试的是Android.jar2.2,而Juint是基于jre 以及Junit的,所以,运行会失败,同时也跟Android做的单元测试封装有关。看接下来的配置

3.选择项目,Run asconfiguration ,在弹出的界面中要将Bootstrap一项Android2.2移除,并添加jre 以及 Junit(以及其他你单元测试要用到的包)。其实也就是你要配置一下运行Junit时的环境。如图所示。




配置完成之后,在项目上选择run as configuration 找到刚才所建立的Junit ,点击run即可看到运行的单元测试的效果。当然你可以选择其他的Junit节点下的测试配置,只要保证该配置的BootstrapEntries没有错即可。




在单个方法上运行测试用例是也是一样,只要保证运行时的配置没问题,就行了。


4. 你需要注意,如果你要测试的方法中引入了某些包,那么你这个Bootstrap Entries 也应该包含该包,否则测试用例将会找不到对应的类。

例如,我们在MyDataHelper中调用了Android包中HttpClient 类,那么在对单元测试的run进行配置时,也应该加入该类所在的包。但是,绝不能加入Android.jar应为这样的话,你又回到原来的问题上来。应该只加一部分。可以从网上找到相应的包,在runconfiguration中,点击 add external jar将这些包加入到Bootstrap Entries中,再run就可以了。


Ok,Android上的常规单元测试就介绍到这里,在接下来的文章中,我将介绍如何建立Activity的单元测试。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值