android - 如何编写跨越 2 个应用程序的 Android 测试用例

标签 android robotium android-testing

根据 Robotium 文档,我们无法编写跨两个应用程序的测试用例,它说“测试项目被锁定到 targetPackage。Android 平台不允许超出该目标包。因此您将需要 2 个测试项目,每个应用程序一个。”

目前我想做的是猴子工具。我想在屏幕上随机触发操作以彻底触发应用程序的功能。在遍历过程中,程序流程有时会脱离应用程序,然后JUnit或Robotium失去对程序的控制。我想知道有什么方法可以将程序流程引导回应用程序吗?或者有什么方法可以同时控制多个应用程序?

谢谢!

最佳答案

编写一个简单的应用程序可以轻松做到这一点,该应用程序访问 Activity 管理器并每 2 秒读取一次应用程序或另一个应用程序中作为外部服务 Activity 的 Activity 。

http://developer.android.com/reference/android/app/ActivityManager.html

基本上,检查 ActivityManager.RecentTaskInfo() 并检查启动它的 Activity 组件是否是您可以接受的组件。然后,为了不影响您的普通用户,.isUserAMonkey() 返回 bool 值 true。

如果 Activity 不是您想要的,请写:

else
startService(new Intent(this, TheService.class));

else 
startActivity(new Intent(this, TheActivity.class)); 

关于android - 如何编写跨越 2 个应用程序的 Android 测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13386561/

相关文章:

android - Robotium:请安装兼容的 Android API 级别(15 或更高)

java - robotsium 测试项目在 eclipse 中构建,但不在 ant 中构建

android-testing - 在 InstrumentationTestCase 运行之间重置应用程序状态

android - 在 Android Studio 中的 Android Instrumentation 测试和单元测试之间共享代码

java - 如何对齐在类内部而不是 xml 文件中动态创建的 imageView

android - 为什么 eglMakeCurrent() 因 EGL_BAD_MATCH 而失败?

java - 尝试在空对象引用 finishComposingText() 上调用接口(interface)方法

Android - 获取谷歌语音安装语言

android - 如何在 Scroll 的 CoordinatorLayout 中隐藏 FloatingActionMenu?

android - 如何与另一个模块共享模块的 androidTest "Robots"?