单元测试,build.gradle中 testImplementation and androidTestImplementation的区别

在用Android studio 创建一个新项目的时候,会默认生成三个目录(每个目录都被称为是Source set(源码集合)):

 app/src
* ├── androidTest/java (仪器化单元测试、UI测试,比如Espresso)
* ├── main/java (业务代码)
* └── test/java  (本地单元测试,Junit4、mockito、Robolectric)

这个 androidTest 目录包含了触摸屏幕或者检查在屏幕上显示了什么的测试用例 ,在test目录下,我们最主要是进行单元测试,比如测试一个函数的正确性等等。

But test directory is not only for Unit test. You can also write Integration test like HTTP call. Even you can UI test in test directory using Robolectric library.(It's really fast rather than Espresso)

但是, 这个test目录并不是只能进行单元测试,我们也可以写一些诸如HTTP请求的集成测试。我们甚至可以进行UI测试,通过使用Robolectric类库(实验表明,Robolectric比使用Espresso要快的多)。

了解完上面这些基础知识之后,那么 testImplementation 和androidTestImplementation 到有什么区别呢?

  • testImplementation : 为 test source set 添加依赖
  • androidTestImplementation : 为 androidTest source set 添加依赖

比如:

//本地化测试
// Required -- JUnit 4 framework
testImplementation 'junit:junit:4.12'
// Optional -- Mockito framework(可选,用于模拟一些依赖对象,以达到隔离依赖的效果)
testImplementation 'org.mockito:mockito-core:3.1.0'
//仪器化测试
//Google UI测试框架
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

 

 

### Android Studio 项目缺少 `build.gradle` 文件的原因分析 在某些情况下,开发者可能会发现项目的根目录或模块下缺失了重要的构建配置文件——即 `build.gradle` 文件。这可能是由于多种因素引起的: - 版本控制系统操作失误导致重要文件未被提交到仓库中[^1]。 - 自动化脚本误删或是手动清理缓存时不慎移除了必要的构建配置文件[^2]。 ### 解决方案概述 为了恢复丢失的 `build.gradle` 文件并使项目能够正常工作,可以采取以下措施来解决问题: #### 方法一:从版本控制历史记录中找回 如果项目使用 Git 或其他版本控制系统管理源码,则可以从历史记录中检索之前的 `build.gradle` 文件副本。具体做法如下所示: ```bash git checkout HEAD -- path/to/build.gradle ``` 此命令会尝试将指定路径下的 `build.gradle` 文件还原至最近一次提交的状态。 #### 方法二:创建新的 `build.gradle` 文件模板 当无法通过上述方式获取旧版文件时,可以根据官方文档中的指导重新编写一份标准格式的 `build.gradle` 文件。对于大多数 Android 应用程序而言,其结构通常类似于下面的例子: ```groovy // Project-level build.gradle plugins { id 'com.android.application' version '7.0.0' apply false } allprojects { repositories { google() mavenCentral() } } ``` 以及应用级别的 `build.gradle`: ```groovy // Module (app)-level build.gradle plugins { id 'com.android.application' } android { compileSdkVersion 30 defaultConfig { applicationId "com.example.myfirstapplication" minSdkVersion 21 targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'com.google.android.material:material:1.4.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.0' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' } ``` 请注意替换其中的应用 ID 和 SDK 版本号等参数以匹配实际需求。 #### 方法三:同步 Gradle 配置 完成新 `build.gradle` 文件的创建之后,应该立即点击工具栏上的 Sync Now 按钮让 IDE 加载最新的设置信息。这样不仅可以验证语法正确性,还能自动下载所需的库依赖关系。 ### 后续建议 为了避免将来再次发生类似的意外情况,强烈推荐定期备份项目数据,并确保所有更改都已妥善保存于版本控制系统之中。此外,保持良好的编码习惯也有助于减少人为错误的发生几率。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值