简要:在Android实现单元测试,Dragger 2 + MVP + Robolectric 是最佳搭配。
背景:登陆模块
使用Dragger 2的好处是,能够让模块尽可能解耦,可复用性高。
下图中,左边的代码是MVP的写法,右边的是使用dragger 2的写法
从代码对比中可以看出,dragger 2通过注解的形式进行实例化,代码更加精简,更好地解耦。并且不用专门为单元测试开一个口子。
下面的代码是用于单元测试的代码(左边的是普通的,右边的是使用dragger 2)
虽然说在总体上,为dragger 2搭建一些脚手架,但是总体的项目架构来说,更解耦,更加方便测试。
代码地址:https://github.com/AaronPlay/dragger2AndUnitTest
参考:http://chriszou.com/2016/05/10/android-unit-testing-di-dagger.html