簡要:在Android實現單元測試,Dragger 2 + MVP + Robolectric 是最佳搭配。
背景:登陸模塊
使用Dragger 2的好處是,能夠讓模塊盡可能解耦,可復用性高。
下圖中,左邊的代碼是MVP的寫法,右邊的是使用dragger 2的寫法
image.png
從代碼對比中可以看出,dragger 2通過注解的形式進行實例化,代碼更加精簡,更好地解耦。并且不用專門為單元測試開一個口子。
下面的代碼是用于單元測試的代碼(左邊的是普通的,右邊的是使用dragger 2)
image.png
雖然說在總體上,為dragger 2搭建一些腳手架,但是總體的項目架構來說,更解耦,更加方便測試。
代碼地址:https://github.com/AaronPlay/dragger2AndUnitTest
參考:http://chriszou.com/2016/05/10/android-unit-testing-di-dagger.html