??????????????????
????????????????е????????????????????????д????????
???????????壺?????п??????С?????????/????????
?????????????????????????????????????????????
????????????????б????
????1 ??????б??д???????????
??????м?????????????????????????????????????????????
??????????д?????????????????????????д???????????????????????????Ч?????????????????????????????????
?????????????????????????????UI???
????2 ??д?????????????Щ????
????????????????????????????????????????????
?????????????????????????????????????????д?????????????
?????????????????????????????bug?????????
????bug?????????????????????????????????????????????????????????????????????????????????????????μ?????????????????0???????????
????3 ???????????????????
????Ч????????е????????????????????????????????ε??????????????cover??????棬???????г???Ч???????
?????????????????С???????????????????????????????????????????????????μ?????????????????汾????????????
?????????????????????????????????????????????t??????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????
??????????????????????????????д???????????????????????monkey????????????????????????????????????????????????????????????в?????????
??????????Щ??????????????
?????κη???????????????????
???????????????????UI????????????????????????????????????ж??????????Model??Control?????????
??????з???????????????????????????????public????????????public???????????????????????????????????ò????
???????????????????Щ????
????1 ????
????????????????
??????????????UI????????IO????????????????
????UI?????????UI???????????????????????
??????????????豸??
??????????Android?豸????????????JVM????→???????????????п?Ч????
????????Android?豸???????/?????????????????????????????????????????????????????????????????????????→??????????????????????????????????Ч????
????2 ??????
?????????п???????????????
???????д???????????ж???鷳??????????????bug?????????
??????console?й?????????
???????????????????Ч??
????JUnit??Instrumentation test??Espresso??UI Automator??Robolectric??Appium??Robotium
????JUnit??????????PC????У?
????AndroidTest?????????Android?豸??
????Robolectric????????????Android??????????£??????PC?????????Android?????????
????Robotium????????UI???????
????Espresso??Google?????UI???????
????UI Automator???????UI???????
????3 ??????
?????????????????????????????????????????????????????????????????????????????н??е??????????????????????Emma??JaCoCo??
????4 JUnit????е???÷???
????setUp/@Before???????????????????????????
????tearDown/@After???????????????????к?????
????setUpBeforeClass/@BeforeClass??????????????????????????
????tearDownAfterClass/@AfterClass??????????????????????????á?
????Junit3??????????????????test?????Junit4????????????????????????@Test?????
????5 ???????????????
????setUp?????????????????????????
??????ж?????????????????????????????
????????????????????????????????£?
????6 ????Mock
??????д????????????У?????????????????????????????????????徹????????Щ????????????????????????????????????????????????????????????????????????????????????mock????????????????
????mock???????????????????????????У??????滻?????????????????????
????????????????Щ???????????????????????Σ?????????????
????????????????Щ??????????????????????????????????????????
????????mock????????????mock????Mockito??Jmockit??android???????????mock????????Mockito????mock static method??final class??final method????Jmockit?????
????7 ????????????????е????
??????????????Mock?????????????????????????????????????滻????????????????????????£?????????滻??mock???????????????????????????????????????????????DataActivity?????????????????????DataModel??????????????DataActivity????new?????????????????DataModel??????????????????set??DataActivity???????????????????????????????????????????????????У?Roboguice??Dagger??Dagger2??
?????????д????????????У?mock????????????????з???б????????????????????????????????????????????μ???????????????????
?????塢???????????Jenkins
????Jenkins???????κθ??????????е?gradle??????????е????????????????????????
???????????
?????????????????????????????????д????????????????????????????????????????ο???ò???楨??????????????????????
??????????????????????д?????????е??????????????????????????е????????漰??UI???楨????????г????????????м????????????????android?????????UI???????
????test??androidTest????е??????????????Android Studio?????????????????????src???????????????????????main??test??androidTest??????test??androidTest???????????????в?????test?????????д???????豸????????????????????PC????????е?????????????Ч????androidTest?????????д??????豸????????е????????????????android API???豸?????????(context??IO??????UI?????)???????????????????д?????????????????????????????APK?????????Ч????
??????????????????TDD???????????????????????д????????????????????????