Android Instrumentation 判断跳转后的 Activity

来源:互联网 发布:nginx查看端口是否 编辑:程序博客网 时间:2024/05/02 02:11

转载地址: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());    }}

0 0
原创粉丝点击