因为这只是一个示例Demo,没有过多的营业逻辑,结合了几个简单的设计模式,Presenter的代码变成了绝大年夜多半的次序履行,经由过程Mockito的verify即可完考验证。这里须要解释一下的是之所以结合设计模式是因为单位测试的原则是每一个前提分支都须要有一条测试Case做包管,对于多分支甚至是多嵌套分支就会比较繁琐,须要写大年夜量的反复代码,同时也增大年夜了漏测的几率,恰当的添加设计模式可以很好的弥补这一点,将嵌套前提断定测底删除,极大年夜程度削减甚至删除前提断定。经由完美代码后的单位测试,测试的只是一些简单的if/else单分支断定。验证办法与Model层的测试办法大年夜同小异,借助Junit与Mockito我们可以随便马虎的实现Presenter层的测试。
写在后面,很多同伙对单位测试都是抱着一种排斥的立场,认为写单位测试是在浪费时光。其实不然,如不雅你把代码调试,bug修复竽暌闺回归测试的时光也算人进去的话,你就会发明,单位测试其实可以或许赞助我们节约大年夜量的时光。单位测试的编写要本着验证问题的心态就编码,切弗成以完成义务指标的心态去编码,认为只是Leader安排的指标。很多时刻一个有经验的前人安排你去做某件事的时刻,并不是想让你完成什么,只是以一个过来人的角度告诉你终南捷径,器械就在钠揭捉?前,谁把话听进去了,谁就获得了。
Jacoco代码覆盖率
【编辑推荐】
- 安卓当下最风行的吸顶效不雅的实现(上)
- 安卓当下最风行的吸顶效不雅的实现(下)
- Android单位测试研究与实践
- iOS单位测试和UI测试周全解析
- 大年夜Effective Java总搅一皓有助安卓开辟的建议
我们可以清除的看到所有的办法都不约而同的抛出了RuntimeException("Stub!"),这也就是我们的测试case无法进行的原因。为了应对UI单位测试难以推动的近况,谷歌推出了一套名为Espresso的UI单位测试框架,因为是官方的框架,所以在工程的运行以及相干材料的跟进都做的比较完美。然而Espresso的短板也异常明显,Espresso必须借助于安卓模仿器或是真机情况才能够运行,也恰是因为须要在安卓设备上运行,Espresso的运行速度异常迟缓,使之与Jenkins相结合进行主动化构建更是难上加难。这不禁让我陷入沉思,如不雅UI单位测试须要如斯的大年夜费周章,那是否还有测下去的须要?不过很快迭代的bug统计就清除了我放弃UI只做逻辑测试的念头。我们手机组在迭代过程中的UI与逻辑bug比根本可以达到5比1,也就是说有绝大年夜多半问题产生在了视图层,单位测试的目标是削减bug产生,而今朝UI就是我们最大年夜的痛点,UI单位测试势在必行。经由赓续的资本搜刮,最终我到了一个可以不借助安卓设备的UI测试框架Robolectric,它的设计思路是经由过程实现一套JVM能运行Android代码,大年夜而做到离开Android情况进行测试。因为robolectric须要大年夜oss.sonatype.org下载一些须要的依附包,然则oss.sonatype.org是国外的网站,下载速度比较迟缓。这里须要修改┞符个工程的build.gradle文件,修改mavenCentral()为阿里云{"http://maven.aliyun.com/nexus/content/groups/public/"} 的代劳。
推荐阅读
前几天收到了一名网友的乞助,表示他无法正常上彀,并且当他在查找断网原因刹那,竟然发明默认的网关地址也消掉了。面对这种情况,他表示不知该若何处理。实际上,出现默认网关空白的情况有下面几个原因。起首,可能>>>详细阅读
本文标题:安卓单元测试全攻略,让代码测试一劳永逸
地址:http://www.17bianji.com/lsqh/36696.html
1/2 1