【问题标题】:Testing this Activity测试此活动
【发布时间】:2025-12-02 04:20:30
【问题描述】:

我有一个想要对其进行自动化测试的活动。 Activity的启动是这样的:

  • 从 Intent 获取数据
  • 绑定到服务并获取特定于该 Activity 的 Intent 数据的一些对象
  • 查询这些对象并将信息打印到屏幕

我对测试活动有基本的了解,但考虑到这个活动在很大程度上依赖于服务和其他对象,我不确定如何开始测试它。理想情况下,该服务也将在测试期间设置为仅返回我预定义的数据。

【问题讨论】:

  • 我会小心你选择“自动”的措辞。这意味着除了我认为你真正想要的东西之外的其他东西。你为什么不直接使用模拟器来测试你的应用呢?
  • 测试将在模拟器和实际设备上进行。我想自动化我通常在活动中做的各种事情:发送文本、测试解析等。
  • 据我回忆,Android 还没有办法“自动发送短信”。您的应用程序必须调用设备 SMS 程序,此时您的活动失去焦点,让用户点击发送。测试你的解析函数可以独立完成,比如使用 XML 或数据数组。

标签: android testing junit instrumentation


【解决方案1】:

From the Android Documentation

借助 Instrumentation,Android 可以通过向被测应用程序发送事件来自动化 UI 测试,精确控制 Activity 的启动,并在其生命周期内监控 Activity 的状态。

我认为 InstrumentationTestCase 应该可以做一些事情,我已经使用它做了一些非常基本的测试

【讨论】: