一般单元测试用在后台的 API,但是如果不巧,要做客户端的 sdk,好像后台的这个单元测试的流程,也是可以用的,下面来看看怎么配置 android sdk 的单元测试

build.gradle 配置

dependencies {// .....testImplementation 'junit:junit:4.12'testImplementation "androidx.test:core:1.1.1"testImplementation "androidx.test.ext:junit:1.1.1"testImplementation "org.robolectric:robolectric:4.2.1"testImplementation 'com.android.support.test:runner:0.5'testImplementation 'com.android.support.test:rules:0.5'testImplementation 'org.mockito:mockito-core:2.19.0'}

测试用例类 ExampleUnitTest.java

测试用例

@Config(sdk = 28)
@RunWith(AndroidJUnit4.class)  // 用于获取上下文的注解
public class ExampleUnitTest {@Testpublic void testCase() {// 获取上下文,用于获取资源Context context = ApplicationProvider.getApplicationContext();// mock 异步事件View.OnClickListener mqttActionCallBack = mock(View.OnClickListener.class);// 评判结果assertEquals(4, 2 + 2);}
}

测试用例运行效果

附加说明

细心的你,应该发现了为什么要增加 @Config(sdk = XX) 这个注解呢,这里是为了修复下面这个错误

ExampleUnitTest.testCase: Package targetSdkVersion=29 > maxSdkVersion=28

调整 build.gradletargetSdkVersion 这个参数也是可以的,另外一种改法就是使用 @Config(sdk = XX) 这个注解,来限定测试用例的依赖的 sdk 版本

那有人又会问了 @RunWith(AndroidJUnit4.class) 又是干嘛的,好吧我们先看看没有这个注解跑出来是什么效果

java.lang.IllegalStateException: No instrumentation registered! Must run under a registering instrumentation.at androidx.test.platform.app.InstrumentationRegistry.getInstrumentation(InstrumentationRegistry.java:45)at androidx.test.core.app.ApplicationProvider.getApplicationContext(ApplicationProvider.java:41)at com.qcloud.iot_sdk_java.ExampleUnitTest.testCase(ExampleUnitTest.java:29)

测试用例的 29 行对应的是获取上下文

Context context = ApplicationProvider.getApplicationContext();

现在大家应该明白了吧,这样可以限定是 android 的单元测试,后续就可以获取 android 层面经常需要使用的上下文

Android 配置 junit 单元测试相关推荐

  1. Android中的Junit单元测试

    Android中的Junit单元测试 在实际开发中,经常要对已经实现的功能进行单元测试,以保证当前单元没问题,尽可能的减少已有功能的bug 和Java中的开发一样,Android中对单元测试也可以采用 ...

  2. Android之Junit测试类

    今天跟着视频学习了Junit测试类,趁热打铁.顺便把学的东西整理下来,再就是为了以后好回顾 1.Junit单元测试介绍: 在实际开发中,经常要对已经实现的功能进行单元测试,以保证当前单元没问题,尽可能 ...

  3. 行意天下正文 Android Day02-Android中单元测试(junit测试)monkey测试

    Android中junit测试有2种实现方式 第1种:一般Android工程的实现方式 1.在清单文件中添加2项内容 首先在AndroidManifest.xml中加入下面红色代码: <mani ...

  4. 【android】AS中使用Junit单元测试和Android JUnit 单元测试

    AS中使用Junit单元测试和Android JUnit 单元测试 在AndroidStudio中使用单元测试 1. 前言 在Android开发中,如果对一个简单的功能,每次修改代码都重新运行到设备中 ...

  5. idea将junit设置模板_IDEA配置JUnit进行单元测试

    前提条件 安装JDK,并配置好环境变量 工程已解决JUnit依赖关系(pom.xml) IDEA中JUnit配置 IDEA自带一个JUnit插件,打开Settings窗口搜索junit,如图: 图 1 ...

  6. 【单元测试】Junit 4(二)--eclipse配置Junit+Junit基础注解

    1.0 前言 ​ 前面我们介绍了白盒测试方法,后面我们来介绍一下Junit 4,使用的是eclipse(用IDEA的小伙伴可以撤了) 1.1 配置Junit 4 1.1.1 安装包 我们需要三个jar ...

  7. 在Android中进行单元测试遇到的问题

    问题1.Cannot connect to VM  socket closed 在使用JUnit进行测试的时候,遇到这个问题.网上的解释是:使用Eclipse对Java代码进行调试,无论是远程JVM还 ...

  8. android真机单元测试,Android 单元测试入门

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Unit Test Start 简单了解一下,如何依赖 Junit 进行 Java 代码的单元测试.依旧如何借助 Rob ...

  9. spring junit单元测试

    项目是有很多个功能块组成的,我们开发的时候,当我们开发出来一个功能,想要测试这个功能是否正确,不可能等到前端和后端全部写好了再进行测试,这样太浪费时间,有没有什么方法能直接测试后台的功能写的是否正确( ...

  10. 七、Web服务器——Junit单元测试 反射 注解学习笔记

    今日内容 1. Junit单元测试 2. 反射 3. 注解 Junit单元测试: * 测试分类:1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值.2. 白盒测试:需要写代码的.关注程 ...

最新文章

  1. 数据结构-浙大 MOOC 笔记一 基本概念
  2. Redis 哨兵架构基础
  3. ubuntu snmp Error: unknown payload OID
  4. modbus 台达a2_驱控智造未来 台达重磅发布多款工业自动化新品
  5. .png图片 阴影效果(fliter:drop-shadow属性)案例
  6. php 正则xml文件,php 读取xml的方法三---用php正则表达式来记取数据
  7. APACHE服务器出现No input file specified.解决方案
  8. 打开文件、网页、文件夹等
  9. 用UIWebView加载本地图片和gif图
  10. word表格完美复制到excel之浅析
  11. 简述Android模拟机和真机的区别,详解android模拟器emulator
  12. android alert
  13. czl蒻蒟的OI之路2
  14. 关于服务器上安装新版Python报错的问题
  15. 网站压力测试工具was
  16. Pandas中resample方法详解
  17. 初识Quartz之Trigger组件
  18. ftp服务器上传文件不行,ftp服务器上传文件不行
  19. js中ajax刷新页面,django+js+ajax实现刷新页面的方法
  20. 蓝筹股有哪些股票 蓝筹股有哪些股票2018

热门文章

  1. 【Python办公自动化】根据excel中数据批量生成word文档(适用劳动合同、质检报告、通知书等应用场景)
  2. PDF文件批量添加目录详细教程
  3. 博图os更新_博途V14的新功能(通过U盘给第二代的精智及精简屏传输组态)
  4. 74LS系列芯片简记——10-19
  5. 华为开发者学堂 | 囤课畅学 码住未来
  6. CRM客户关系管理系统项目总结
  7. 细丝菲涅尔衍射MATLAB,工程光学系列之六: 菲涅尔衍射  matlab仿真
  8. 全国(全球)快递查询物流查询API,物流信息追踪接口
  9. 最全经典 | 机器视觉基础知识汇总
  10. SLM4054独立线性锂电池充电器的芯片的学习