语义学

Compose 中的 UI 测试使用语义与 UI 层次结构进行交互。语义顾名思义,赋予 UI 部分意义。在本例中,“UI 部分”(或元素)可以指任何内容,从单个可组合组件到整个屏幕。语义树与 UI 层次结构一起生成,并描述层次结构。

您可以在 Compose 中的语义 中了解有关语义的一般信息。

Diagram showing a typical UI layout, and the way that layout would map to a corresponding semantic tree

图 1. 典型的 UI 层次结构及其语义树。

语义框架主要用于辅助功能,因此测试利用了语义公开的有关 UI 层次结构的信息。开发者决定要公开什么以及公开多少。

A button containing a graphic and text

图 2. 包含图标和文本的典型按钮。

例如,对于包含图标和文本元素的按钮,默认语义树仅包含文本标签“Like”。这是因为一些可组合组件(例如 Text)已经将一些属性公开到语义树中。您可以使用 Modifier 将属性添加到语义树中。

MyButton(
    modifier = Modifier.semantics { contentDescription = "Add to favorites" }
)

其他资源

  • 在 Android 上测试应用程序:Android 测试主要登陆页面提供了有关测试基础知识和技术的更广泛的视图。
  • 测试基础: 了解有关测试 Android 应用程序的核心概念。
  • 本地测试: 您可以在自己的工作站上本地运行一些测试。
  • 仪表测试: 最好也运行仪表测试。也就是说,直接在设备上运行的测试。
  • 持续集成: 持续集成允许您将测试集成到部署管道中。
  • 测试不同的屏幕尺寸: 由于用户可以使用众多设备,因此您应该测试不同的屏幕尺寸。
  • Espresso:虽然适用于基于 View 的 UI,但 Espresso 知识对于 Compose 测试的某些方面仍然很有帮助。