Android Instrumentation 判断跳转后的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());
    }
}
时间: 2024-11-02 02:21:13

Android Instrumentation 判断跳转后的Activity的相关文章

android桌面快捷方式跳转到指定activity

AndroidManifest.xml 应用主入口配置: <activity android:name="com.*.cust.contacts.MainActivity" android:exported="true" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <

Android实现点击通知栏后,先启动应用再打开目标Activity

情况简述 在开发Android app的过程中,遇到这样一个需求:app中启动一个Service,该Service在独立进程中运行,与服务器保持长连接,将服务器推送过来的消息在通知栏中显示,并设置点击动作,点击后跳转到app中对应的Activity.目前遇到的问题是Service以独立进程运行,在收到消息并弹出通知后,app本身的进程有两种情况: app正在运行 app已退出 对于第一种情况,处理就非常简单了,直接将参数传入Intent并打开对应的Activity即可. 但第二种情况比较复杂,因

Android开发学习笔记之四大组件---Activity的跳转,数据传递(二)

上一章我们温习了Activity的创建,以及各生命周期,这一章我们主要学习Activity的跳转,以及Activity之间的数据传递 一.Activity跳转: Activity之间的单纯跳转非常简单,只需要创建两个Activity,然后使用startActivity(intent)来进行跳转,看下代码: Intent uio=new Intent(thisActivityclass,ActivityBclass); startActivity(uio); Intent是什么? Android中

Android实现点击通知栏后,先启动应用再打开目标Activity ,极光推送等推送的也可以参考一下(转)

我因为项目中集成了极光推送,推送的通知栏点开需要确定进入哪个界面就参考了这边文章,感谢作者的无私. 情况简述 在开发Android app的过程中,遇到这样一个需求:app中启动一个Service,该Service在独立进程中运行,与服务器保持长连接,将服务器推送过来的消息在通知栏中显示,并设置点击动作,点击后跳转到app中对应的Activity.目前遇到的问题是Service以独立进程运行,在收到消息并弹出通知后,app本身的进程有两种情况: app正在运行 app已退出 对于第一种情况,处理

Android欢迎页面2秒钟后自动跳转到主页面

页面跳转 一.功能介绍 打开APP先进入欢迎页面,2秒钟后自动进入主页面 二.项目结构分析 三.详细代码 1.WelcomeActivity.java package com.xingyun.shoopingmail4; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import com.xingyun.shoopin

第九章,WebView点击网页内链接跳转到其他Activity(Android)

在 AndroidManifest.xml中添加网络权限 <uses-permission android:name="android.permission.INTERNET"/> activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com

JS判断是否是微信页面,判断手机操作系统(ios或android)并跳转到不同下载页面

JS判断客户端是否是iOS或者Android 参考:http://caibaojian.com/browser-ios-or-android.html 1 function is_weixin() { 2 var ua = window.navigator.userAgent.toLowerCase(); 3 if (ua.match(/MicroMessenger/i) == 'micromessenger') { 4 return true; 5 } else { 6 return fals

Android开发艺术探索——第一章:Activity的生命周期和启动模式

Android开发艺术探索--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activity搬上来了,也确实,和Activity打交道的次数基本上是最多的,而且他的内容和知识点也是很多的,非常值得我们优先把他掌握,Activity中文翻译过来就是"活动"的意思,但是主席觉得这样翻译有些生硬,直接翻译成"界面"可能更好,的确,Activity主要也是用于UI效

android 实现页面跳转及数据的传递和返回

1.实现效果: 原始界面:     ----传输数据----------> 填写数据后,点击计算后界面-----返回数据----->点击返回按钮后,回到上一个页面,依旧能够保留之前保持的数据                                   2.实现代码: a.两个布局文件: activity_main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout