Robotium作为Android自动化测试框架,还有许多不完善的地方,也不能满足测试人员的所有要求。那么,本文以四个实际中碰到的问题为例,介绍改动Robotium源码的过程。

public boolean waitForActivity(String name, int timeout){
   Activity currentActivity = activityUtils.getCurrentActivity(false);
   final long endTime = SystemClock.uptimeMillis() + timeout;

while(SystemClock.uptimeMillis() < endTime){
       if(currentActivity != null && currentActivity.getClass().getSimpleName().equals(name)) {
           return true;
       }
       
       sleeper.sleep(MINISLEEP);
       currentActivity = activityUtils.getCurrentActivity(false);
   }
   return false;
}

 
currentActivity.getClass().getSimpleName().equals(name)。于是,我把getSimpleName()改为getName(),这样以后使用solo.waitForActivity函数时,传入Activity的全名就好。
public void assertViewShown(String message, View view, int timeout)
{
   asserter.assertViewShown(message, view, timeout);
}

public void assertViewShown(String message, View view, int timeout)
{
   Assert.assertTrue(message, waiter.isViewShown(view, timeout));
}

public boolean isViewShown(View view, int timeout){
   if(view == null)
       return false;
   long endTime = SystemClock.uptimeMillis() + timeout;

while (SystemClock.uptimeMillis() < endTime) {
       if(view.isShown())
           return true;
       sleeper.sleep(MINISLEEP);
   }
   return false;
}

自己动手修改Robotium代码(上)的更多相关文章

  1. 自己动手修改Robotium代码(下)

    public void takeScreenshot(){   View decorView = viewFetcher.getRecentDecorView(viewFetcher.getWindo ...

  2. 学习Git的一点心得以及如何把本地修改、删除的代码上传到github中

    一:学习Github的资料如下:https://git.oschina.net/progit/ 这是一个学习Git的中文网站,如果诸位能够静下心来阅读,不要求阅读太多,只需要阅读前三章,就可以掌握Gi ...

  3. 用PhpStrom线上连接修改linux服务器上代码配置

    为了进一步提高自己的技能水平,不久前入手了一台服务器,不贵,一年也就不到两百,因为自己对于linux机器比较生疏,命令用的有点抠脚.老需要查阅处理. 于是我选择用PhpStrom直接连接线上服务器,通 ...

  4. Blender 之修改器代码分析

                           Blender的修改器(modifier)模块,默认界面右下块(Property)面板的扳手,分类(修改.生成.形变.模拟)列出所有的修改器.也可以空格键 ...

  5. 将你的代码上传 Bintray 仓库

    在 Android Studio 中,我们通常可以利用 gradle 来导入别人写的第三方库,通常可以简单得使用一句话就能搞定整个导包过程, 比如: compile 'net.cpacm.moneyt ...

  6. 翻译文章“AST 模块:用 Python 修改 Python 代码”---!!注意ironpathyon未实现此功能

    https://github.com/upsuper/blog/commit/0214fdd084c4adf2de2ed9912d644fb59ce13a1c +Title: [翻译] AST 模块: ...

  7. 数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案

    作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段.简单地说,Sharding就是将原来单一 ...

  8. git使用之如何将github库下载到本地与如何将代码上传github

    git使用之如何将github库下载到本地与如何将代码上传github ---------------------------------------------------------------- ...

  9. 一步一步实现android studio代码上传到github。

    本文只注重代码上传能成功就好,不解释什么是git什么事github,git有什么优势. 1,先创建一个android应用, 第二步:创建github账户 和 安装git.网上的文章多如牛毛.唯一要说的 ...

随机推荐

  1. Android 添加水印, 以及屏幕存取

    /** * 获取水印 */ try { String s = CustomPreferences.getUserInfo().getAccountNo().substring(7,11); View ...

  2. ASP.NET没有魔法——ASP.NET MVC IoC

    之前的文章介绍了MVC如何通过ControllerFactory及ControllerActivator创建Controller,而Controller又是如何通过ControllerBase这个模板 ...

  3. win10 uwp 反射

    本文在h神的指导下完成. 反射是强大的好用的,我们可以添加新功能不修改之前的代码,通过使用反射得到. 本文下面和大家说如何做一个和WPF一样的反射功能,如何才能获的 UWP 程序集所有类. 先来说下反 ...

  4. 前端工程化grunt

    1.grunt是什么? grunt是基于nodejs的前端构建工具.grunt用于解决前端开发的工程问题. 2.安装nodejs Grunt和所有grunt插件都是基于nodejs来运行的. 安装了n ...

  5. Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录

    最近用vue2做了一个微信商城项目,因为做的比较仓促,所以一边写一下整个流程,一边稍做优化. 项目github地址:https://github.com/seven9115/vue-fullstack ...

  6. 支持“WeShopDb”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库

    用EF框架搭建完成后,为其中一张表加了一个字段,程序运行时候就一直报这个错误,郁闷了一个晚上,不过通过找资料,上网搜答案,找了好几个解决方案可以解决这个问题,我把他吗分享出来希望可以帮助到你们 方法一 ...

  7. FastDFS 简介

    FastDFS开源的分布式文件系统,功能包括:文件存储,文件同步,文件访问(文件上传,文件下载等),解决了大容量存储和负载均衡的问题,特别适合以文件为载体的在线服务,如服务网站,视频网站等 FastD ...

  8. RabbitMQ 笔记-基本概念

    ConnectionFactory.Connection.Channel ConnectionFactory.Connection.Channel,这三个都是RabbitMQ对外提供的API中最基本的 ...

  9. Git相关操作三

    1.显示当前分支: git branch 输入上述命令可以显示出分支,*所在的分支为当前分支. 2.新建分支: git branch new_branch new_branch为新建分支的名称,注意该 ...

  10. CodeForces - 846F Random Query(期望)

    You are given an array a consisting of n positive integers. You pick two integer numbers l and r fro ...