了解 Android 测试的基础知识

1. 准备工作

在本 Codelab 中,您将了解到有关测试的基础知识,以及如何在 Android 应用中运用自动化测试。

前提条件

  • 了解有关如何在 Android Studio 中导航到项目目录的基础知识。

学习内容

  • 什么是测试?
  • 什么是自动化测试?
  • 什么是单元测试和插桩测试?
  • 在 Android 项目中的什么位置可以找到单元测试和插桩测试文件?

所需条件

  • 一台安装了 Android Studio 的计算机。
  • 您在此在线课程的上一个 Codelab 中创建的项目。

2. 什么是测试?

就软件而言,测试是一种结构化方法,用于检查软件以确保其运行正常。自动化测试实际是一段代码,用于检查您所编写的另一段代码,确保其能够正常运行。

进行软件测试非常有好处,因为通过此测试,您可以在公开发布代码之前消除其中的 bug,这是确保良好的用户体验的关键。

虽然手动测试几乎总是有它的一席之地,但 Android 中的测试通常可以自动执行。在整个《使用 Kotlin 进行 Android 开发的基础知识》课程中,您将重点学习使用自动化测试来测试应用代码和应用本身的功能要求。在此 Codelab 中,您将了解关于 Android 测试的基础知识。在后续 Codelab 中,您将学习有关测试 Android 应用的更多高级做法。

随着您对 Android 开发和 Android 应用测试的熟悉,您应该将在编写应用代码的同时编写测试作为一种常规做法。如果每次在应用中创建新功能时都创建一个测试,可以在以后应用变大时减少工作量。这样做还可以让您无需花费太多时间来手动测试应用,从而便捷地确保应用能够正常运行。

3. 自动化测试简介

自动化测试是指一段代码,用于检测您编写的另一段代码,确保其能够正常运行,并且能够随着项目的增长和变化继续正常运行。自动化测试是所有软件开发中不可或缺的一部分,Android 开发也不例外。因此,现在就是介绍它的最佳时机!在您创建第一个 Android 应用时,您可能会看到主 activity 位于 main 目录的一个子文件夹中。在 src 目录中,您可能已经注意到 testandroidTest 目录。这两个目录是编写测试代码的位置。Android 开发中有两种自动化测试:单元测试和插桩测试。这两个目录分别代表这两类测试。

59a85b0d54051f31.png

查找单元测试代码

Android 中的本地测试位于 test 目录中,它们通常是单元测试。单元测试会直接测试一小段代码,以确保其运行正常。借助单元测试,您可以测试函数、类和属性。本地测试在 Java 虚拟机上执行,这意味着它们可以在开发环境中运行,而无需使用设备或模拟器。这是单元测试在计算机上运行的一种巧妙说法。Android Studio 已准备好自动运行本地测试。

每次您创建新项目时,Android Studio 都会自动生成一个简单的单元测试。插桩测试也是如此。需要注意的一点是,这些测试并不会真正执行任何相关操作。它们只用作占位符。目前,您只需要了解在哪里查找测试文件即可。我们将会在后续的在线课程中深入探讨这些生成的测试的内容。

如需查找单元测试代码,请执行以下操作:

  1. 打开上一个项目中的 Birthday Card 应用。
  2. 如有必要,请从导航菜单中选择 Android
  3. 依次点击 app > java > com.example.happybirthday (test) > ExampleUnitTest

66ea4f322cab41f5.png

查找插桩测试代码

在 Android 开发环境中,插桩测试通常是指界面测试。借助插桩测试,您可以测试应用中依赖于 activity 和 fragment 生命周期、平台 API 和服务的部分。

与单元测试不同,界面测试不会直接测试代码,而是对界面进行测试,以确保显示正确的界面组件,以及在界面中执行操作时,界面能够按预期运行。另一个区别是,所有插桩测试必须在实体设备或模拟器上运行。在之前的在线课程中,您已经设置了模拟器,因此这一步已经完成。

在 Android 上运行插桩测试时,测试代码实际上会内置到其自己的 APK 中,就像常规 Android 应用一样。APK 是一个压缩文件,其中包含了在设备或模拟器上运行应用所需的所有代码和文件。该测试 APK 将与常规应用 APK 一起安装在设备或模拟器上。然后,测试 APK 会针对应用 APK 运行测试。

在运行测试之前,先来看一下代码会执行的操作。

如需查找插桩测试代码,请执行以下操作:

  1. 如果当前位于 Android 项目视图中,请依次点击 app > java > com.example.happybirthday (androidTest) > ExampleInstrumentedTest

b5cff05a589025b1.png

  1. 如果当前位于 Project 项目视图中,请依次点击 HappyBirthday > app > src > androidTest > java > com.example.happybirthday > ExampleInstrumentedTest

610a4d073109ae0d.png

4. 恭喜

您已了解了 Android 中的测试是什么,以及如何在 Android 中找到单元测试和插桩测试。