導入好robotium包之後,我們就可以在自己的工程中建立測試類進行測試。下面以我們開始建的RobotiumTest項目為例進行說明。
代碼如下:
<b>package</b> com.android.adb.test;
<b>import</b> com.jayway.android.robotium.solo.Solo;
<b>import</b> android.test.ActivityInstrumentationTestCase2;
<b>public</b> <b>class</b> TestRobotium <b>extends</b> ActivityInstrumentationTestCase2
{
//此處為你要測試的apk的包名,這裡我測得是豌豆莢2
<b>private</b> <b>static</b> <b>final</b> String TARGET_PACKAGE_ID ="com.wandoujia.phoenix2";
//此處的classname是你要測得apk的主類名,也就是進入apk第一個activity的類名
<b>private</b> <b>static</b> <b>final</b> String LAUNCHER_ACTIVITY_FULL_CLASSNAME ="com.wandoujia.phoenix2.NewWelcomeActivity";
<b>private</b> <b>static</b> Class<?> launcherActivityClass;
// 定義一個休眠時間 2000毫秒
<b>private</b> <b>static</b> <b>final</b> <b>int</b> Sleeptime1 = 2000;
<b>static</b>
{
<b>try</b>
launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
}
<b>catch</b>(ClassNotFoundException e)
<b>throw</b> <b>new</b> RuntimeException(e);
@SuppressWarnings("unchecked")
//建立與測試類同名的構造方法
<b>public</b> TestRobotium()
<b>super</b>(TARGET_PACKAGE_ID,launcherActivityClass);
//定義一個Solo對象
<b>private</b> Solo solo;
<b>protected</b> <b>void</b> setUp()<b>throws</b> Exception
//建立進入測試apk界面的方法
solo= <b>new</b> Solo(getInstrumentation(),getActivity());
//這是自己定義的一個測試case,隻是簡單進入界面,點選一下兩個選項
<b>public</b> <b>void</b> test_Watch_001(){
solo.sleep(Sleeptime1);
solo.clickOnText("管理");
solo.clickOnText("連接配接");
solo.goBack();
//測試類結束的方法
<b>public</b> <b>void</b> tearDown()<b>throws</b> Exception
<b>try</b>
{
solo.finalize();
<b>catch</b>(Throwable e)
e.printStackTrace();
getActivity().finish();
<b>super</b>.tearDown();
}
這是我以自己下載下傳的豌豆莢apk為測試例子,裡面的注釋已經很清楚了,除了一個自己寫的測試case外,其他的幾個方法,像TestRobotium()、setUp()、tearDown()方法,都是測試必須的。
這裡主要說明的就是,你要找到你要測試的apk的包名和主類名,這個是必須的,沒有源碼可以,但是你要找不到這兩個,你的robotium測試就進行不下去了。如果你沒有源碼時,僅有一個apk,怎樣找到這個apk的包名和主類名呢,有兩種方法,先放在這裡,稍後再說。
主類配置好後,你的robotium測試程式配置還沒有完成,還需要配置一下你的測試程式的AndroidManifest.xml檔案,這個大家肯定很熟悉了。
下面是我的檔案代碼:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.adb.test"
android:versionCode="1"
android:versionName="1.0" >
<!-- 最小的api版本 -->
<uses-sdk android:minSdkVersion="14" />
<!-- 添加這一句是減少一些控件點選失效的情況 -->
<supports-screens android:anyDensity="true" />
<!-- 下面的配置是關鍵,正确填寫你要測試的apk的包名-->
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.wandoujia.phoenix2" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<!-- 引用android中測試的包 -->
<uses-library android:name="android.test.runner" />
</application>
</manifest>
同樣,代碼已經給出了注釋,這裡最要注意的,也是要正确添加你要測試的包名,以及引用robotium測試包。
這個程式的配置是最基礎的,是每個robotium測試程式必須有的,其他的不同就是根據你測試的apk不同,書寫不同的測試case了。
配置好之後,就可以選中你的項目,右鍵,點選“Run as”選項,然後選擇“Android Junit Test”選項,(不是“Android Application”選項),然後開始進行測試了。
注意!注意!這裡有兩個前提:一、你的模拟器或着真機中已經安裝了這個你要測試的apk。(我的是豌豆莢)。二、你的apk已經去過簽名了,并且使用的是debug簽名,否則除非你知道你要測試程式的原始簽名是什麼。
關于簽名,這也是一個很重要的問題,等到下篇進行詳解。這裡給出兩張上面的豌豆莢Robotium case運作成功的圖檔:
(case中的點選“管理”選項)
(case中的點選“連接配接選項”)
本文轉自 風泊海上 51CTO部落格,原文連結:http://blog.51cto.com/fengbohaishang/1001583