Google在3月份推出了一个项目,用来介绍Android MVP架构的各种组合,可以认为是官方在这方面的最佳实践。令人称道的是除了MVP本身之外,这些工程配备了极其完善的单元测试用例,学习价值极高。本文着重针对todo-mvp的单元测试进行解读。官方MVP项目的Github地址是:
https://github.com/googlesamples/android-architecture
简而言之,这个工程包含了三个模块:待办事项列表模块,待办事项详情模块,统计模块。
在该项目中,MVP各层所使用的单元测试框架如下图所示:
在此处,我们先大致了解一下MVP各层的UT选型,然后通过一个例子,看看各层之间如何配合测试,最后再对各层UT选型的原因进行分析,从而理解整体测试架构。
接下来我们以TO-DO List页面(TasksActivity/TaskFragment)中加载任务列表功能为例,此场景的功能界面如下图所示:
在这个功能里,Presenter只做了一件事情,就是loadTask(),时序图如下所示:
从时序图上看,loadTask执行的逻辑是,1.调用View层开启进度条->2.从Model层获取待办任务列表->3.Model层以回调函数的形式返回数据->4.调用View层关闭进度条->5.调用View层显示任务列表。这5个步骤里,每个步骤的逻辑是否准确是View层和Model层该测试的事情,对于Presenter层来讲,他的测试任务是确保这5个步骤如期调用。为了达成此目的,我们会采用
原文转自:http://www.jianshu.com/p/cf446be43ae8