在一个项目中,在 Android Studio 中,默认情况下有两个测试文件夹。
第一个是 src/androidTest
。此文件夹已存在于之前版本的 Android Studio 中。尽管如此,现在有一个新的测试文件夹,默认情况下是 src/test
,并且在 build.gradle
中有新的依赖项 testCompile 'junit: junit: 4.12'
。
我使用哪个文件夹进行测试?两者有什么区别?
src/androidTest
用于涉及 android 检测的单元测试。
src/test
用于不涉及 android 框架的纯单元测试。您可以在此处运行测试,而无需在真实设备或模拟器上运行。
您可以使用这两个文件夹。使用第一个测试使用 Android 框架的代码。使用第二个测试纯 java 类的代码。编写测试的方法几乎相同。
更多信息:http://developer.android.com/tools/testing/testing_android.html
一般而言,与 Android 测试相关的重要信息来源是开发者页面 Best Practices for Testing:
本地单元测试 (/src/test/java/) 在 Java 虚拟机 (JVM) 上本地运行的单元测试。当您的测试没有 Android 框架依赖项或您可以模拟 Android 框架依赖项时,使用这些测试可以最大限度地缩短执行时间。仪器测试 (/src/androidTest/java/) 在 Android 设备或模拟器上运行的单元测试。这些测试可以访问 Instrumentation 信息,例如您正在测试的应用程序的上下文。当您的测试具有模拟对象无法满足的 Android 依赖项时,请使用这些测试。
https://i.stack.imgur.com/qUnwh.png
Android Studio 中的典型项目包含两个用于放置测试的目录。
<强> 1。仪器化测试 (/src/androidTest/java/)
androidTest
目录应包含在真实或虚拟设备上运行的测试。此类测试包括集成测试、端到端测试以及仅 JVM 无法验证应用程序功能的其他测试。
通过仪器化测试,我们能够验证需要真实设备的应用程序逻辑,因此大多数情况下我们将验证 UI。我们还将使用 JUnit
并添加 Espresso
。
<强> 2。单元测试 (/src/test/java/)
test
目录应包含在您的本地计算机上运行的测试,例如单元测试。
单元测试用于在不使用真实设备的情况下验证业务逻辑是否正常工作。我们将使用 JUnit
、hamcrest
和 mockito-kotlin
来实现这一点。
https://i.stack.imgur.com/Ko1RN.jpg
Android 测试 src 文件夹 test vs androidtest
src/test
- 单元测试
src/androidtest
- Android Instrumentation 测试