???????
??????????Android?????????У?MVP & RxJava & Retrofit ?????????????????????????MVP?????????????е????????????????????д????????????????????????ɡ?
???????????????
????????????unit testing?????????????е?С??????????м???????????????????е??????壬?????????????????????ж?????庬?壬??C?????е????????????Java???????????λ???????п??????????????????????????????????????漲??С?????????顣????????????????????????????е??????????????????????????????????????????????????????в????
????????????????????????????????????????????????????????????
????????д???????
??????????????????????????????????е????????????????????????????д?????????в??????
??????????????????????????????????????ù????????????????????????????????????? ???????????????????????????????????????????????????????????????????????? bug????????????μ????????????????????????????????????е???????????????????????????????t?????С????????????????????????????????????????????????????????????????????????????????????????????в??????????????????????????????????????????????忪??????????????????????Ч??????
?????????????????????????????????????????治????????JUnit???????????Mokito??????Robolectric?????????????????????????
??????????????
??????????????????????????е?????????
????????????Java?????????????????
// ??????????????
public class Calculator {
public int add(int one?? int another) {
// ??????????????????????????
return one + another;
}
public int multiply(int one?? int another) {
// ??????????????????????????
return one * another;
}
}
// ??????????????
public class CalculatorTest {
public static void main(String[] args) {
Calculator calculator = new Calculator();
int sum = calculator.add(1?? 2);
if(sum == 3) {
System.out.println("add() works!")
} else {
System.out.println("add() does not works!")
}
int product = calculator.multiply(2?? 4);
if (product == 8) {
System.out.println("multiply() works!")
} else {
System.out.println("multiply() does not works!")
}
}
}
???????????????????????????????????????????????????????з?????????臨????????????????ú????????????????????????д??????ж??????????????terminal??????????????????????????????????????????????Android?У???????????з???????????????????????
??????Щ??е???У?????????????????????????????????????????????????
????????Щ?????????
???????????????????????????Android???????UI??????????????????????????????????????????к???????????????????????????Щ?????????????????????
????JUnit??????????PC????У?
????Mokito
????Robolectric????????????Android??????????£??????PC?????????Android?????????
????Robotium????????UI???????
????Espresso??Google???????????
????UI Automator???????UI???????
??????????о????????????????????????????????????????????????????????????Щ???????????????????????????????
????Mock
??????????????????????????????з????????????????з????????????з?????????????????????????????????????Calculator??????????????????????????????????????????????????????????????????????????
??????????з??????????????????????
??????????????Android?е????login?????????з?????£?
????// ???Login??棬???????????????????button???????????????????????????????????button????????UserManager??????performlogin???????????????????????檔
????public void login() {
????String username = ...//get username from username EditText
????String password = ...//get password from password EditText
????//do other operation like validation?? etc
????...
????mUserManager.performlogin(username?? password);
????}
?????????????void?????????????????????????????????????????????????????????????????????????mUserManager??performLogin?????????????????????????????????mUserManager
??????performLogin???????????????????????????????????????????????????????????
?????????????????Activity??login()???????????mUserManager??performLogin????????????漰??mock?????????????????????????Mock
??????ν?? Mock ???????????????????????????У??????滻??????????????????????
????????????????Щ???????????????????????Σ????????????
????????????????Щ????????????????????????????????????????
???????? Mock??????????? Mock ???????????? Mockito ????????????Java????ù??????mock????
????С??
??????????£???????????????????????????漰???Щ????????????????????????Mockito??????????????????????????????仰???????????????????????????????Mockito????y??н?????????