AndroidCalculatorTest²âÊÔAndroidCalculator
ÔÚÉÏÒ»½ÚÖÐÎÒÃÇÒѾ´´½¨ÁËProjectºÍTest Project£¬½ÓÏÂÀ´ÎÒÃÇÒªÓÃÕâ¸öTest Project¶ÔProject½øÐвâÊÔ¡£
1¡¢ ´´½¨²âÊÔÓÃÀý
ÔÚAndroidCalculatorTestÖÐÓÒ»÷com.calculator.test°ü£¬µã»÷New,Ñ¡ÔñOthers£¬Ñ¡ÔñJUit Test Case;
ÔÚNameÖÐÊäÈëTestMain£¬²¢½«setUp(),teardown()ºÍconstructor()¹´Ñ¡Ôñ¹´ÉÏ¡£
2¡¢ Ìí¼Órobotium jar
Äã¿ÉÒÔ´Ó¹ÙÍøÉÏÏÂÎÞrobotium jar£¬ÍøÖ·ÈçÏ£ºhttp://code.google.com/p/robotium/downloads/list
ÓÒ»÷²âÊÔÓõÄproject£¬Ñ¡ÔñBuild PathÔÙÑ¡ÔñConfigure Build Path£¬ÔÚÏÂͼµÄ´°¿ÚÖеã»÷Libraries£»
µã»÷ÓұߵÄAdd External JARs£¬Ñ¡ÔñÄãÏÂÔصÄrobotium jar°ü¡£×îºóµã»÷OK¡£
3¡¢ ±àд²âÊÔÓÃÀýµÄ´úÂë
ÔÚÎÒÃǵIJâÊÔÓÃÀýÖÐÎÒÃǽ«·ÃÎÊAndroidCalculatorµÄÄÚÈݲ¢ÓÐÒÔϼ¸¸ö²½Ö裺
1. Call/Access first & second input controls (EditFields)
2. Enter values of our own choice
3. Access & Click on Multiply button
4. Put assert to verify their multiplication result into result field.
ÔÚTestMain.javaÖÐÊäÈëÈçÏ´úÂë²¢±£´æ
packagecom.calculator.test;
importjava.util.ArrayList;
importandroid.test.ActivityInstrumentationTestCase2;
importandroid.widget.EditText;
importandroid.widget.TextView;
importcom.calculator.Main;
importcom.calculator.R;
importcom.jayway.android.robotium.solo.Solo;
public classTestMainextendsActivityInstrumentationTestCase2<Main> {
privateSolo solo;
publicTestMain() {
super("com.calculator", Main.class);
}
@Override
protected voidsetUp()throwsException {
super.setUp();
solo =newSolo(getInstrumentation(), getActivity());
}
public voidtestDisplayBlackBox() {
//Enter 10 in first editfield
solo.enterText(0, "10");
//Enter 20 in first editfield
solo.enterText(1, "20");
//Click on Multiply button
solo.clickOnButton("Multiply");
//Verify that resultant of 10 x 20
assertTrue(solo.searchText("200"));
}
public voidtestDisplayWhiteBox() {
//Defining our own values to multiply
floatfirstNumber = 10;
floatsecondNumber = 20;
floatresutl = firstNumber * secondNumber ;
//Access First value (editfiled) and putting firstNumber value in it
EditText FirsteditText = (EditText) solo.getView(R.id.EditText01);
solo.enterText(FirsteditText, String.valueOf(firstNumber));
//Access Second value (editfiled) and putting SecondNumber value in it
EditText SecondeditText = (EditText) solo.getView(R.id.EditText02);
solo.enterText(SecondeditText, String.valueOf(secondNumber));
//Click on Multiply button
solo.clickOnButton("Multiply");
assertTrue(solo.searchText(String.valueOf(resutl)));
TextView utputField = (TextView) solo.getView(R.id.TextView01);
ArrayList currentTextViews = solo.getCurrentTextViews(outputField);
assertFalse(currentTextViews.isEmpty());
TextView utput = (TextView) currentTextViews.get(0);
//Assert to verify result with visible value
assertEquals(String.valueOf(resutl), output.getText().toString());
}
@Override
protected voidtearDown()throwsException{
solo.finishOpenedActivities();
}
}
×¢Ò⣺ÔÚimportcom.calculator.Main;
importcom.calculator.R;
ÕâÁ½ÐдúÂëÏà¹ØµÄµØ·½¿ÉÄܻᱨ´í£¬ÔÒòÊÇMainºÍRÕâÁ½¸öjavaÀ಻ÊÇ¿âÀïÃæµÄ£¬±àÒëÆ÷»áÕÒ²»µ½¡£
½â¾ö°ì·¨ÊÇ£¬Í¬ÑùµØ´ò¿ªBuild Path,ÔÚprojectsÖУ¬µã»÷AddÌí¼ÓAndroidCalculator.
4¡¢ ÔËÐвâÊÔÓÃÀý
ÏÖÔÚÎÒÃÇ¿ÉÒÔÔËÐÐÎÒÃǵIJâÊÔÓÃÀýÁË
ÓÒ»÷TestMain.javaÑ¡ÔñRun AsÔÙÑ¡ÔñAndroid Junit TestÕâÑù¾Í½«¿ªÊ¼ÔËÐÐJunit test£¬
ÎÒÃÇ¿ÉÒÔÔÚÄ£ÄâÆ÷¹Û¿´ÔËÐÐʱµÄЧ¹û¡£
Õý³£µÄ»°ÎÒÃÇ¿ÉÒÔ¿´µ½ÔËÐнá¹ûÈçÏ£º