轉載地址:http://testerhome.com/topics/2444
如果對Instrumentation有興趣,可以看看。
至於被測應用,很簡單,就是點擊一個button跳轉至另一界面,找了比較久的時間才找到判斷Activity的方法,因此記錄一下。
測試功能點
-
在主界面
MainActivity
點擊按鈕Button
,跳轉至另一界面OtherActivity
測試方法
-
使用
Instrumentation
,執行點擊Button的動作,判斷跳轉後的界面的Activity是否爲預期的Activity -
使用
ActivityMonitor
,該類用來監控應用中的單個活動,可監控一些指定的意圖。 -
創建
ActivityMonitor
實例後,通過調用Instrumentation.addMonitor
方法添加這個實例,當目標活動啓動後,系統會匹配Instrumentation中的ActivityMonitor實例列表,如果匹配,就會累加計數器
測試代碼
package com.example.demo.test;
import com.example.demo.MainActivity;
import android.app.Instrumentation.ActivityMonitor;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.Button;
public class MainActivityTest extends
ActivityInstrumentationTestCase2<MainActivity> {
private MainActivity mActivity;
private Button button;
public MainActivityTest() {
super(MainActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
//啓動待測應用並打開待測活動
mActivity = getActivity();
button = (Button) mActivity
.findViewById(com.example.demo.R.id.button);
}
//測試Button
public void testButton() {
//跳轉後的界面的Activity名爲com.example.demo.OtherActivity
ActivityMonitor am = getInstrumentation().addMonitor(
"com.example.demo.OtherActivity", null, false);
//點擊操作運行在待測應用的線程中
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
button.performClick();
}
});
//設定等待滿足要求的活動創建成功,最多等待5s
am.waitForActivityWithTimeout(5000);
//活動創建成功,am.getHits()值爲1,否則爲0
assertEquals(1, am.getHits());
}
}