Android Instrumentation 判斷跳轉後的 Activity

轉載地址: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());
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章