Android自動化測試之Robotium<二>:用例分析

發表于:2012-08-28來源:Csdn作者:wirelessqa點擊數: 標簽:Android
如果大家配置好了Robotium的測試環境,那么開始吧(這里只介紹有源碼的情況,沒有源碼也是可以做的) 被測應用下載:http://download.csdn.net/detail/wirelessqa/4487252

  如果大家配置好了Robotium的測試環境,那么開始吧(這里只介紹有源碼的情況,沒有源碼也是可以做的)

  被測應用下載:http://download.csdn.net/detail/wirelessqa/4487252

  測試代碼 (只貼出MainActivity和GridView,用例很簡單就不多作注釋了)

  大家可以對照著Athrun的用例來看看兩個框架的區別

  [java] view plaincopypackage org.onceler.robotium.test;

  import java.util.ArrayList;

  import org.athrun.android.app.MainActivity;

  import org.athrun.android.app.R;

  import org.athrun.android.app.ScrollActivity;

  import android.test.ActivityInstrumentationTestCase2;

  import android.test.suitebuilder.annotation.Smoke;

  import android.util.Log;

  import android.view.KeyEvent;

  import android.view.View;

  import android.widget.TextView;

  import com.jayway.android.robotium.solo.Solo;

  public class MainActivityTest extends ActivityInstrumentationTestCase2{

  private Solo solo;

  private TextView tv;

  private static final String TAG = "robotium_test";

  public MainActivityTest() {

  super("org.athrun.android.app", MainActivity.class);

  }

  public void setUp() throws Exception {

  solo = new Solo(getInstrumentation(), getActivity());

  }

  @Override

  public void tearDown() throws Exception {

  //Robotium will finish all the activities that have been opened

  solo.finishOpenedActivities();

  }

  @Smoke

  public void testWaitForActivity(){

  solo.assertCurrentActivity("assert activity err", MainActivity.class);

  solo.assertCurrentActivity("assert activity err", "MainActivity");

  solo.assertCurrentActivity("assert activity err", MainActivity.class, true);

  solo.assertCurrentActivity("assert activity err", "MainActivity", true);

  solo.clickOnButton("ScrollView");

  solo.assertCurrentActivity("assert activity err", ScrollActivity.class);

  solo.goBack();

  solo.clickOnButton(4);

  solo.assertCurrentActivity("assert activity err", "ScrollActivity");

  solo.goBackToActivity("MainActivity");

  solo.assertCurrentActivity("assert activity err", "MainActivity", true);

  }

  @Smoke

  public void testFindElementInTree(){

  ArrayList list = solo.getViews(solo.getView(R.id.include_checkbox));

  tv = (TextView)list.get(2);

  assertEquals("default text",tv.getText());

  solo.clickOnCheckBox(0);

  tv = (TextView)list.get(2);

  assertEquals("CheckBox is checked!",tv.getText());

  }

  public void testFindViewByIdDirect() {

  //通過ID得到view

  tv = (TextView)solo.getView(R.id.textview);

  assertEquals("default text",tv.getText());

  solo.clickOnCheckBox(0);

  tv = (TextView)solo.getView(R.id.textview);

  assertEquals("CheckBox is checked!",tv.getText());

  }

  public void testLongClick(){

  //ImageView iv = (ImageView)solo.getView(R.id.my_imageview);

  solo.clickLongOnView(solo.getView(R.id.my_imageview));

  //這個TOAST提示捕獲不到,不知道哪里有問題,知道的朋友可以跟我說一下

  // assertEquals(true,solo.waitForText("LongClick"));

  }

  public void testPressMenu(){

  solo.clickOnMenuItem("Toast");

  //這個TOAST跟上面的一樣,這個確是成功的。OH MY GOD,這是為何

  assertEquals(true,solo.waitForText("Hello World"));

  }

  public void testPressHome(){

  solo.sendKey(KeyEvent.KEYCODE_HOME);

  solo.sleep(2000);

  }

  public void testPressBack(){

  solo.clickOnButton("ScrollView");

  solo.clickOnButton("Bottom Button");

  solo.sendKey(KeyEvent.KEYCODE_BACK);

  solo.assertCurrentActivity("assert activity err", "MainActivity");

  }

  public void testFindViewByText(){

  solo.clickOnButton("ListView");

  solo.clickLongOnText("Item35");

  solo.clickOnText("Item One");

  assertTrue(solo.waitForText("1 pressed!"));

  }

  public void testScrollListInDialog(){

  solo.clickOnMenuItem("Dialog With List");

  solo.clickOnText("Item9");

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97