Android单元测试是应用测试策略中的基本测试。通过针对代码创建和运行单元测试,您可以轻松验证各个单元的逻辑是否正确。在每次构建后运行单元测试可帮助您快速捕捉和修复由应用的代码更改导致的软件回归。
一、什么是Android单元测试
Android单元测试是应用测试策略中的基本测试。通过针对代码创建和运行单元测试,您可以轻松验证各个单元的逻辑是否正确。在每次构建后运行单元测试可帮助您快速捕捉和修复由应用的代码更改导致的软件回归。
单元测试通常以可重复的方式运用尽可能小的代码单元(可能是方法、类或组件)的功能。当您需要验证应用中特定代码的逻辑时,应构建单元测试。例如,如果您正在对某个类进行单元测试,测试可能会检查该类是否处于正确状态。通常,代码单元在隔离的环境中进行测试;您的测试仅影响和监控对该单元的更改。您可以使用依赖项提供器(如 Robolectric)或模拟框架将您的单元与其依赖项隔离开来。
注意:单元测试不适用于测试复杂的界面互动事件。对于此类事件,您应改用界面测试框架,如自动执行界面测试中所述。
为了测试 Android 应用,您通常会创建下面这些类型的自动化单元测试:
- 本地测试:仅在本地计算机上运行的单元测试。这些测试编译为在 Java 虚拟机 (JVM) 本地运行,以最大限度地缩短执行时间。如果您的测试依赖于 Android 框架中的对象,我们建议您使用 Robolectric。对于依赖于您自己的依赖项的测试,请使用模拟对象来模拟您的依赖项的行为。
- 插桩测试:在 Android 设备或模拟器上运行的单元测试。这些测试可以访问插桩测试信息,如被测应用的Context。您可以使用此方法来运行具有复杂 Android 依赖项(需要更强大的环境,如 Robolectric)的单元测试。
延伸阅读:
二、为什么要进行单元测试
使用单元测试可以提高开发效率,当项目随着迭代越来越大时,每一次编译、运行、打包、调试需要耗费的时间会随之上升,因此,使用单元测试可以不需这一步骤就可以对单个方法进行功能或逻辑测试。
同时,为了能测试每一个细分功能模块,需要将其相关代码抽成相应的方法封装起来,这也在一定程度上改善了代码的设计。因为是单个方法的测试,所以能更快地定位到bug。
单元测试case需要对这段业务逻辑进行验证。在验证的过程中,开发人员可以深度了解业务流程,同时新人来了看一下项目单元测试就知道哪个逻辑跑了多少函数,需要注意哪些边界——是的,单元测试做的好和文档一样具备业务指导能力。