- dependencies {
- classpath'com.vanniktech:gradle-android-junit-jacoco-plugin:0.6.0'
- }
起首们来看看convert类代码:
- /**
- * Author : YangHaoyi on 2017/6/28.
- * Email : yanghaoyi@neusoft.com
- * Description :收集数据与视图数据转换器
- * Change : YangHaoYi on 2017/6/28.
- * Version : V 1.0
- */
- open classWeatherDataConvert {
- open funconvertData(netData: WeatherData):WeatherViewData{
- valviewData=http://mobile.51cto.com/ WeatherViewData()
- viewData.temperature= netData.data?.temperature?:0.0viewData.weatherType= netData.data?.weatherType?:1viewData.ultraviolet= netData.data?.ultraviolet?:0viewData.rainfall= netData.data?.rainfall?:"0"viewData.hourTemperature= netData.data?.hourTemperature?:"10"viewData.windPower= netData.data?.windPower?:"2"returnviewData
- }
- }
大年夜代码可以看出我们的convert类看起来竽暌剐一些的奇怪,每错,因为它并不是java代码,它是kotlin。好好的java工程为什么要混入kotlin,单单只是为了炫技么?当然不是,数据转换类的感化是对收集数据进行判空并包装成视图数据,我们都知道在java中的判空,须要层层嵌套,例如,我们须要断定Student类中的Score类中的EnglishScore字段,我们的写法如下:
- if(Student!=null&&Student.getScore()!=null&&Student.getScore().getEnglishScore()!=null){}
这是一个很独裁的断定,而对于kotlin我们只须要写Student?.score?.englishScore即可,代码量巨减有没有。对于kotlin的特点,有兴趣的同窗可以移步官网去具体懂得。
让我们回归单位测试,convert类是一个数据判空类,它的感化是对数据进行组装并付与默认初值,因为办事端的数据弗成控,作为手机端我们不克不及把用户体验完全依附于后端的兄弟,因为放过任何一个null数据对于App都是一个Crash。所以我们的测试点就是,这个类是否达到了当数据为空的时刻付与默认值,当数据不为空的时刻取收集数据值的感化。这里拔取一个比较有代表性的testTemperature为例,起首设定模仿WeatherData的值为10D,因为收集数据有值,所以会取收集数据的值即10D,经由过程assertEquals可以进行断言比对验证,不过有一个须要留意的是double型的断言assertEquals(message,double1,double2)是弗采取的,直接运行的话会报测试掉败。Double的比对须要加上一个误差值,这里给一个误差值0.1D,再次运行,测试条变绿。同时我们须要测试当WeatherData为空的情况下,viewData是否被付与了默认值0.0。以词攀类推,我们须要对每一条数据进行校验,并包装成视图数据。
- /**
- * Author : YangHaoyi on 2017/7/7.
- * Email : yanghaoyi@neusoft.com
- * Description :
- * Change : YangHaoYi on 2017/7/7.
- * Version : V 1.0
推荐阅读
前几天收到了一名网友的乞助,表示他无法正常上彀,并且当他在查找断网原因刹那,竟然发明默认的网关地址也消掉了。面对这种情况,他表示不知该若何处理。实际上,出现默认网关空白的情况有下面几个原因。起首,可能>>>详细阅读
本文标题:安卓单元测试全攻略,让代码测试一劳永逸
地址:http://www.17bianji.com/lsqh/36696.html
1/2 1