Android????????????????????????????
???????С?? ???????[ 2016/8/26 14:38:16 ] ??????????? ???????
????????????InfoQ?????????????????????????????η???????????????????????????????????????????????????????????????
?????????????????????????????С??????????????????°?????????????????????????????????棬?????????????
????????д????????
??????????????????????????????????????????????????????????????????????????????д???????????????????????????????????м???????飬?????????????????????????????顣???????????????????????????????????????????????????????????????????????????
??????????д?????????????????????????????????????????????????????????bug???緢??bug?????????????????????????????????á???????????????????????????????????????????????????????????????????????????????????????????????????Щ???????Щ????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????д???????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????1. ????????????????????2. ???????е???????????м??????????????????????????????????е?????????е????????????????????н??????
??????????????????????飬?????????????????????????????????????????????????1. ???????????????????2. ???·?治???????????·???????????????????????????????
???????????????????????????????????1. ?????е??????????????app??????????????????????ε??????????????2. ???緢??bug????????debug??fixbug?????3. ????????????????????????????????
??????????????????????"????д???????"??????????????????????????????????????????????????????????????????????????????С?
????????????????????void?????????
?????????????????????????????????????????????????????????????д??????к????????????JUnit??Instrumentation test??Espresso??UiAutomator???????е???????Appium??Robotium??Calabash????????????????????JUnit?????????Щ????д???????????????????JVM??????????е?????????????????????????????????????????????????Functional test???????????????????????????????????????????????CI?????JVM?????У?????????????????С????????????????????????????????????????????project????????app??????????????????????????????????????????????????
??????????????????????????????????д??????????????????????????д??????????????????????????????????
????1??setup????new ????????????????Щ???????
????2????ж???????????????????????????????????
????3???????????????????????????????????
?????????????????????????????з??????????????????з?????????????void???????????з????????????????????????????????????????з??????????????????????????????????????????????????“??????”?
???????????????????????£???????????????????????????????Activity????????DataActivity?????????public void loadData()?????? ??????????DataModel??????????Щ?????????????????????????????????檔
?????????loadData()??????void?????????????????????????????????????loadData()????(???????????????????????????)?????????????????????????????????????????????????м??????????????????????????漰?????????棬???漰??DataModel???????????????????緵????????DataActivity?????????????????????????????????????????????ù??????????????м??????????????ù???????????????????????????Test Pyramid???????
????Test Pyramid?????????????????????????????????????????????????д?????????????????????????????????????С?????
??????????????case???????????????????????????loadData()??????????DataModel?????????????????????????????????????“??????DataModel????????????????????” ???????loadData()?????????“??????”??
????Mock????????Mockito???
??????????????????????????????????漰??mock????á??????mock???????????????????????????????mock?????????????????????????????£??????滻?????????????????????????1. ??????????mock????????????????????????????????????????? 2. ???????mock????????????????е?????????????????????Σ?????????????
????????mock???????????mock??????????????????????Mockito??JMockit????????????????????mock static method??final class??final method????????????????????????Mockito????????????????????????????????JMockit??????????????????Щ??????????????Mockito??JMockit?????£?ò????????????JMockit????????????????????robolectric????????Щbug????????????Mockito?н??????????????г???????????????????????????????????飬????????????????????????
???????????Mockito???????????????static method??final class??final method??а?mock???????????ν??????????????????
?????????????????mock?????????
??????????????????????????????????£???DataModel????mock???????????????У?DataModel????????????????
????????????????????????????????????testing product flavor???????????????????????????????????product flavor????testing???????testing flavor???棬????????mock????д???mock??implementation????????factory????client?????factory??????testing flavor???????flavor????????????????testing??????????????testing flavor?????????factory???????mock??????????????????????????????????????????mock??????????????ú??a???????????????dependency?????factory??????ú????????????????flavor?????gradle???????ú??????????????????????ο?????????
??????????????????????????????????????????????????????????????????????????????DataActivity?????????????????????DataModel??????????????DataActivity????new?????????????????DataModel??????????????????set??DataActivity?????????????????????????????????????????????????????????к???????????????飬????RoboGuice??Dagger??Dagger2?????????????Dagger2?????????????????????DI????
????????Dagger2?????£?????????????????????????????????п?????????й???????????????????Dagger2?????£?????????????????????????????????????????????????????????ɡ?
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11