Android单元测试系列-Robolectric
Posted Chris_166
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android单元测试系列-Robolectric相关的知识,希望对你有一定的参考价值。
在Android单元测试系列(1)-开篇_Chris_166的博客-CSDN博客中就提过"Robolectric用于模拟android接口,这套框架可以直接让测试case运行于JVM,不需要Android模拟器和手机"。
说明:App的代码使用了很多Android SDK的API,而不是纯Java的API,这些Android SDK API的接口都是在android.jar中暴露的,并没有在android.jar中实现,当App代码运行在模拟器或者Android设备上面的时候,android.jar就会被替换成了模拟器或者是Android设备上面的系统实现。
一、官网
Configuring Robolectric | Robolectric
GitHub - robolectric/robolectric: Android Unit Testing Framework
二、Demo示例
// Gradle依赖
mockito/Powermock/robolectric之间是需要匹配版本的,否则会出现一些兼容性问题,如下组合暂未出现过兼容性问题。
dependencies
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
testImplementation 'junit:junit:4.+'
testImplementation 'org.mockito:mockito-core:2.8.9'
testImplementation "org.powermock:powermock-api-mockito2:1.7.1" // 这个mockito2必须引入,否则的话会找不到PowerMockito类
testImplementation "org.powermock:powermock-module-junit4:1.7.1"
testImplementation 'org.powermock:powermock-core:1.7.1'
testImplementation "org.powermock:powermock-module-junit4-rule:1.7.1"
testImplementation "org.powermock:powermock-classloading-xstream:1.7.1"
testImplementation "org.robolectric:robolectric:3.3.1"
// androidTestImplementation 'androidx.test.ext:junit:1.1.3'
//androidTestImplementation "org.mockito:mockito-android:4.4.0"
///待续/
以上是关于Android单元测试系列-Robolectric的主要内容,如果未能解决你的问题,请参考以下文章
如何使用robolectric对Android音频录制应用进行单元测试
配置同时使用PowerMock和Robolectric对Android进行单元测试
配置同时使用PowerMock和Robolectric对Android进行单元测试
Android:如何在 Robolectric 中测试 PDFView?