【发布时间】:2015-06-04 14:36:40
【问题描述】:
我正在做一些黑盒测试(顺便说一句,使用 UiAutomator 2.0,扩展 InstrumentationTestCase),我需要知道:
1 - 创建新活动时
2 - 知道是否是第一次创建活动
我需要这个,因为当出现新活动时我想应用一些测试,但我希望这种检测是自动的,而不是手动的。
在 Android L 之前有 UiDevice.getCurrentActivityName() 方法。但是,现在它已被弃用(此外,他们甚至不确保它适用于以前的版本)。通过 PackageManager 获取活动的选项也会发生这种情况。
因此,我想知道:
是否可以以编程方式检测新活动?如果是这样,有可能知道这是不是第一次发生活动。
如果不可能,我应该如何根据其 UI 定义一个活动?我应该更改多少小部件才能断定这是一个不同的活动?
谢谢。
编辑:为了清楚起见,我不想测试创建活动时会发生什么,我希望能够确定它是否是第一次在运行中发生此活动.
【问题讨论】:
-
澄清一下,因为您说的是黑盒测试,我假设您实际上无法访问您正在测试的应用程序的源代码,对吧?
-
完全正确(只是完全不足以添加评论 xD)
-
Black-box testing臭气熏天的reverse engineering。已重命名。 -
您的测试自动化能否模拟旋转设备?这不是最好的方法,但是在设备方向更改后(取决于代码如何处理配置更改),通常必须销毁并重新创建焦点活动。如果您知道目标活动将在设备方向更改后重新创建,则您可以在应用重绘该活动后运行测试。 Activity.onStart() 将在内容首次可见时被调用; Activity.onResume() 将在用户可以与应用交互时调用。不知道这是否有帮助。祝你好运!
-
@DerGolem,你为什么这么说? -.-
标签: android android-activity android-uiautomator black-box-testing