当前位置:网站首页 > 单元测试 > 正文

单元测试规范(单元测试依据是什么)



本地测试直接在您自己的工作站(而非 Android 设备或模拟器)上运行。因此,它使用本地 Java 虚拟机 (JVM) 而不是 Android 设备来运行测试。借助本地测试 更快地处理应用逻辑不过,由于无法与 Android 框架对您可以运行的测试类型造成了限制。

单元测试用于验证一小段代码(被测单元)的行为。为此,它会执行该代码并检查结果。

单元测试通常很简单,但如果待测单元在设计时没有考虑可测试性,则其设置可能会有问题:

  • 您要验证的代码需要能够从测试中访问。例如,您无法直接测试私有方法。而是使用其公共 API 测试该类。
  • 为了在隔离环境中运行单元测试,必须将受测单元的依赖项替换为您控制的组件,例如虚构对象或其他测试双胞胎。如果您的代码依赖于 Android 框架。

如需了解 Android 中的常见单元测试策略,请参阅要测试的内容。

默认情况下,本地单元测试的源文件会放置在 中。当您使用 Android Studio 创建新项目时,此目录已存在。

您还需要为项目配置测试依赖项,以使用 测试框架提供的标准 API。

为此,请打开应用模块的 文件,并将以下库指定为依赖项。使用 函数指明它们适用于本地测试源代码集,而不是应用:

您可以将本地单元测试类编写为 测试类。

为此,请创建一个包含一个或多个测试方法的类,通常在 。测试方法以 注解开头, 包含的代码,用于练习和验证 资源。

以下示例演示了如何实现本地单元测试类。测试方法 会尝试验证 ,这是应用中的一个方法。如果 也返回 true,则测试函数将返回 true。

您应创建容易读懂的测试来评估应用中的组件是否返回预期的结果。我们建议您使用断言库,例如 、 或 。上面的代码段展示了如何使用 。

当您执行本地单元测试时,Android Gradle 插件会包含一个 库,其中包含 Android 框架的所有 API,并且正确设置为 版本。该库包含所有公共方法和 类,但方法中的代码已被移除。如果有 方法时,测试会抛出异常。

这样,当引用 Android 中的类时,就可以构建本地测试 框架,例如 。更重要的是,它允许您使用 框架和 Android 类。

一个典型问题是发现某个类正在使用字符串资源。您可以通过调用 类中的 方法来获取字符串资源。不过,本地测试无法使用 或其任何方法,因为它们属于 Android 框架。理想情况下,应将对 的调用移出该类,但这并不总是可行的。解决方法是 创建 的模拟或桩,当其 调用 方法。

借助可模拟的 Android 库和模拟框架(例如 或 ),您可以在单元测试中编程模拟 Android 类的行为。

如需使用 Mockito 将模拟对象添加到本地单元测试,请遵循以下编程模型:

  1. 在 文件中添加 Mockito 库依赖项,如 设置测试环境中所述。
  2. 在单元测试类定义的开头,添加 注解。此注解可告知 Mockito 测试运行程序验证您对框架的使用是否正确无误,并简化了模拟对象的初始化。
  3. 如需为 Android 依赖项创建模拟对象,请添加 注解 。
  4. 如需模拟依赖项的行为,您可以使用 和 方法来指定某种条件以及满足该条件时的返回值。

以下示例展示了如何创建使用模拟 对象的单元测试,该对象是使用 Mockito-Kotlin 在 Kotlin 中创建的。

如需详细了解如何使用 Mockito 框架,请参阅 中的 类和 。此外,您也可以试用 Android 测试 Codelab。

如果您尝试使用 消息访问 Mockable Android 库的任何方法,该库都会抛出异常。

如果抛出的异常会给测试带来问题,您可以更改行为,以使方法返回 null 或 0(具体取决于返回类型)。为此,请在 Groovy 中将以下配置添加到项目的顶级 文件中:

到此这篇单元测试规范(单元测试依据是什么)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 单元测试规范文档怎么写(单元测试规范文档怎么写的)2024-12-08 10:09:05
  • 单元测试的内容是(单元测试的内容是什么?)2024-12-08 10:09:05
  • 单元测试的范围(单元测试的范围包括)2024-12-08 10:09:05
  • 单元测试规范文档怎么写(单元测试依据什么文档)2024-12-08 10:09:05
  • 单元测试有那些步骤?各个步骤有那些实施内容?(单元测试有那些步骤?各个步骤有那些实施内容)2024-12-08 10:09:05
  • 单元测试规范要求(单元测试的基本要求)2024-12-08 10:09:05
  • 单元测试规范(单元测试规范有哪些)2024-12-08 10:09:05
  • 单元测试的范围(单元测试有哪几种)2024-12-08 10:09:05
  • 单元测试方案小学数学五年级(五年级数学单元测试教案)2024-12-08 10:09:05
  • 单元测试步骤及测试内容(单元测试的一般步骤)2024-12-08 10:09:05
  • 全屏图片