android的单元测试,android单元测试框架
什么叫android单元测试
从名字上看,单元测试是为了测试某一个代码单元而写的测试代码。但是什么叫“一个代码单元”呢?是一个模块、还是一个类、还是一个方法(函数)呢?不同的人、不同的语言,都有不同的理解。一般的定义,尤其是是在OOP领域,是一个类的一个方法。在此,我们也这样理解:单元测试,是为了测试某一个类的某一个方法能否正常工作,而写的测试代码。
成都创新互联公司是一家专业从事网站设计、成都网站设计的网络公司。作为专业网站建设公司,成都创新互联公司依托的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、营销型网站及网站设计开发服务!
Android Mock 单元测试
Mock 用来干什么的?
首先我们知道 单元测试需要测试对象高度内聚,而我们在开发中无法避免需要用到其他对象,这些对象可能又引用到另一些对象,这样测试起来极其困难。
Mock 可以将这些依赖的对象虚拟化,我们不必创建一个真是的对象就可以进行调用测试,实现了封闭测试。
引入方式:
举个例子来说明吧
我们实现一个简单的 mvp 架构 ,实现的功能是 添加数据和删除数据
主要对 presenter 来进行测试
可以看到 我们要想测试 presenter 是否正常运行,需要两个依赖,一个是 数据的实体操作 repository 和 结果返回的接收实体 view
好我们创建 测试类
我们以 add 方法为例编写测试
我们在声明部分先声明需要依赖的对象,并初始化。
对应测试用例编写测试方法
执行测试对象的相应方法,检测预期对象的方法是否调用
引用的依赖对象采用同样的方法进行单元测试,保证功能调用的正常
Android Test测试
在实际的开发中几乎访问网络已经成为一个app的标配,那么每次写完一个网络请求都要重新打包在模拟器或者真机上运行一次,当然这种方式是可以的,但是打包一个apk花费相对较多的时间。我们可以使用android官方提供给我们的test框架,通过测试框架编写相应的测试用例,每次只测试相对较小的方法,打包到真机或者模拟器上的时间相对较小提升编码效率,大大降低bug出现的几率。
使用android studio2.2.3导入使用android studio1.5编写的项目时使用Android Test出现了问题,运行报错:“Test running failed: Unable to find instrumentation info for: ComponentInfo”这句话的意思是没有找到instrumentation这个类,"Run"-"Edit Configurations"-"Android Tests"-选择你的单元测试-"Specific instrumentation runner" -选择"InstrumentationTestRunner"即可解决问题。
出现这个问题的原因nstrumentation runner默认是MutidexTestRunner,入MultiDex后单元测试工具默认变成了MultiDexTestRunner,需要在build.gradle指定分包之前用的InstrumentationTestRunner工具,按照上面修改就可以解决这个问题。
android什么叫单元测试
单元测试是参与项目开发的工程师在项目代码之外建立的白盒测试工程,用于执行项目中的目标函数并验证其状态或者结果,其中,单元指的是测试的最小模块,通常指函数。如图1所示的绿色文件夹即是单元测试工程。这些代码能够检测目标代码的正确性,打包时单元测试的代码不会被编译进入APK中。
处于高速迭代开发中的Android项目往往需要除黑盒测试外更加可靠的质量保障,这正是单元测试的用武之地。单元测试周期性对项目进行函数级别的测试,在良好的覆盖率下,能够持续维护代码逻辑,从而支持项目从容应对快速的版本更新。
Android怎样进行单元测试
这里我们拿“android的ScrollView滚动布局获取数据基础方法”这个示例中利用HttpUtils工具类获得json数据为例,利用单元测试进行测试。
首先,在AndroidManifest.xml清单文件中使用鼠标点击的方法添加android.test.InstrumentationTestRunner(如果使用代码容易出错),之后再添加Instrumentation的Name和Target package,全部自动完成这一过程。具体方法如图。
然后在AndroidManifest中使用Alt+/自动添加单元测试包,单元测试准备工作完成,方法如图。
在第二步中targetPackage指定的包名com.example.layout,意思是在com.example.layout包下所有包下的类都可以进行单元测试,所以我们在该包下建立一个测试类MyTest,并继承AndroidTestCase,写一个testjson()方法,用于测试android语句是否能正确输出json数据,具体代码如下。
4
写好测试代码之后,进行如图方式执行测试代码。如果出现“绿色”,则测试成功,这样就完成了单元测试,模拟器只需要在旁边挂着,不用模拟器,而可以进行多个函数的独立单元测试,不仅节省了时间,还提高了工作效率。
Android单元测试都是测一些什么
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。 在一种传统的结构化编程语言中,比如C,要进行测试的单元一般是函数或子过程。在像C++这样的面向对象的语言中, 要进行测试[1] 的基本单元是类。对Ada语言来说,开发人员可以选择是在独立的过程和函数,还是在Ada包的级别上进行单元测试。单元测试的原则同样被扩展到第四代语言(4GL)的开发中,在这里基本单元被典型地划分为一个菜单或显示界面。 经常与单元测试联系起来的另外一些开发活动包括代码走读(Code review)
网页名称:android的单元测试,android单元测试框架
本文来源:http://azwzsj.com/article/dscedse.html