Android 测试基础理论

参考Android官网 测试基础知识

1、基于模块开发

基于模块开发的代码更便于测试,每个模块代表用户完成的一项特定任务。“任务列表”应用可能包含用于创建任务的模块、查看有关已完成任务的统计信息的模块,以及拍摄要与特定任务相关联的照片的模块。

2、配置测试环境

根据执行环境组织整理测试目录

  • test目录包含在本地计算机上运行的测试,单元测试
  • androidTest目录包含在真实设备或模拟机上运行的测试。包含集成测试、端到端测试和仅靠JVM无法完成功能验证的其他测试。

考虑在不同类型设备上运行测试的利弊
是否使用测试替身

3、编写测试

测试金字塔.png
  • 小型测试:单元测试,验证应用行为,一次验证一个类,占比70%
  • 中型测试:是指集成测试,用于验证模块内堆栈级别之间的互动或相关模块之间的互动,占比20%
  • 大型测试:是指端到端测试,用于验证跨越了应用的多个模块的用户操作流程,占比10%

编写小型测试

  • 依赖安卓框架使用 androidx.test API
  • 依赖资源文件,在app/build.gradle文件中启用includeAndroidResources
    android {
        // ...
        testOptions {
            unitTests {
                includeAndroidResources = true
            }
        }
    }

本地单元测试
尽可能使用 AndroidX Test API 以便单元测试可在设备或模拟器上运行。
插桩单元测试
可在物理设备或模拟器上运行,执行时间明显高于本地测试单元,最好只在必须使用设备硬件评估时采用。
运行插桩测试时,AndroidX Test会使用以下线程:

  • 主线程,也称为“界面线程”或“Activity 线程”,界面交互和 Activity 生命周期事件发生在此线程上。
  • 插桩线程,大多数测试都在此线程上运行。当您的测试套件开始时,AndroidJUnitTest 类将启动此线程。

如果您需要在主线程上执行某个测试,请使用 @UiThreadTest 注释该测试。

你可能感兴趣的:(Android 测试基础理论)