android Junit4编写自测用例

news2024/9/27 5:53:17

10多年的android开发经验,一直以来呢,也没有使用过android自带的测试代码编写。说来也惭愧。今天也花了点时间稍微研究了下。还挺简单。接下来就简单的说一下。

新建工程

直接默认新建一个工程,就会有两个目录androidTest和test(unitTest)两个功能区。分别有ExampleUnitTest和ExampleInstrumentedTest示例代码。
请添加图片描述

gradle相关的:AndroidJUnitRunner,junit,espresso 都已经默认搞好,所以不用处理。

一般情况,我们尽量使用真机的调试方式,即androidTest里面写测试代码。因为有的比如我们需要在application初始化的代码,或与android api相关的代码。谁没有真机就不要来搞笑啦。

测试代码

  1. 类名追加@RunWith(AndroidJUnit4::class)注解;
  2. 函数追加@Test;
  3. 如果想要android的context,则通过 InstrumentationRegistry.getInstrumentation().targetContext 得到。

老版本的android test要求类名以Test结尾。就这么简单。

@RunWith(AndroidJUnit4::class)
class JsonTest {

    @Test
    fun useAppContext() {
        // Context of the app under test.
        val appContext = InstrumentationRegistry.getInstrumentation().targetContext
        assertEquals("com.xxx.xxx", appContext.packageName)
    }

    @Test
    fun testJson() {
        val bean1 = Bean("first", 1)
        val bean1Str = bean1.toJsonString()
        val revert1 = bean1Str.fromJson<Bean>()
        val list = listOf(bean1)
        val revertList = listStr.fromJsonList<Bean>()
        logd("beans1 $bean1Str bean2str $bean2Str $listStr $revertList")
    }
}

编译结果

引入注意Test开头

test相关的gradle引入,全部使用test来开头。
请添加图片描述
默认一般是不需要修改的。如果你的项目是已经移除过,现在想添加Test,则新建一个工程来参考着加回来。

运行

我们可以看到,运行测试函数的时候,有选择。直接运行即可。
请添加图片描述
他会开始一堆Test相关的编译 :app:packageDebugAndroidTest等等,最终其实产物是包含了androidTest代码。
请添加图片描述
通过对比二者的反编译结果知道:
androidTest apk多了很多测试代码,而没有的apk,则不包含这些,因此,大家也不用担心有冗余的测试代码会被包含到release工程去的。放心大胆使用。
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/921540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

漏洞复现 || muhttpd 任意文件读取

漏洞描述 muhttpd&#xff08;mu-HTTP-deamon&#xff09;是一个简单但完整的web服务器&#xff0c;用可移植的ANSI C编写。它支持静态页面、CGI脚本、基于MIME类型的处理程序和HTTPS&#xff0c;muhttpd 1.1.7之前版本存在安全漏洞。攻击者利用该漏洞读取系统任意文件。 免责…

免费制作高质量的电子期刊网站

工具介绍&#xff1a;FLBOOK 打开FLBOOK首页就能看见有四五本高质量的电子书刊&#xff0c;并且每打开一本&#xff0c;书的最下方就有阅读次数的统计。 FLBOOK制作电子期刊的方法也非常简单&#xff0c;可以根据小编的步骤开始制作或是看FLBOOK的教程&#xff0c;亲自动手制作…

第一讲使用IDEA创建Java工程——HelloWorld

一、前言导读 为了能够让初学者更快上手Java,不会像其他书籍或者视频一样,介绍一大堆历史背景,默认大家已经知道Java这么编程语言了。本专栏只会讲解干货,直接从HelloWord入手,慢慢由浅入深,讲个各个知识点,这些知识点也是目前工作中项目使用的,而不是讲一些老的知识点…

Tuxera NTFS2023中文版Mac读写NTFS格式硬盘访问、编辑、存储和传输文件工具

因为Mac电脑不能写入NTFS格式磁盘&#xff0c;但是多数用户使用的是NTFS格式的移动硬盘、u盘&#xff0c;因此很多NTFS for Mac软件应运而生。但是市面上很多NTFS for Mac软件很多&#xff0c;例如&#xff1a;Tuxera NTFS for Mac、Paragon NTFS for Mac等。Tuxera NTFS for M…

【分析绘图】R语言实现一些常见的绘图

微生信-在线绘图网站 线性图 library(ggplot2)x <- rnorm(100, 14, 5) # rnorm(n, mean 0, sd 1) y <- x rnorm(100, 0, 1) ggplot(data NULL, aes(x x, y y)) # 开始绘图geom_point(color "darkred") # 添加点annotate("text",x 13,…

Java面试题—2023年8月24日—YDZH

2023-08-24 10:54:28 北京 yī do zh h 答案仅供参考&#xff0c;博主仅记录发表&#xff0c;没有实际查询&#xff0c;不保证正确性。 面试题&#xff1a; 1、请你谈谈关于 Synchronized 和 lock ? 2、请简单描述一下类的加载过程?类加载器有几个种&#xff0c;分别作用是什…

微信小程序开发项目步骤【详细】

在平常是H5开发中已经不能满足我们的需求了&#xff0c;随着小程序的火热&#xff0c;越来越多的项目开发也离不开小程序的运用&#xff0c;目前常用的就是微信小程序&#xff0c;我们学完微信小程序后其他的小程序开发也是基本一样的&#xff0c;也为后面的uniapp开发做下一定…

港联证券|油价上涨对股票影响大吗?利好还是利空?

石油是现代国家国民经济的血脉&#xff0c;直接影响国民经济的发展。那么&#xff0c;油价上涨对股票影响大吗&#xff1f;利好仍是利空&#xff1f;为大家准备了相关内容&#xff0c;以供参阅。 香港港联证券有限公司&#xff08;百度一下港联证券&#xff09;成立于2021年1月…

vue 简单实验 v-model 变量和htm值双向绑定

1.代码 <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"two-way-binding"><p>{{ message }}</p><input v-model"message" /> </div> <script>…

AD域组策略开机脚本客户端不执行:解决方法

需求&#xff1a;本例实现的客户端计算机开机执行脚本&#xff0c;实现重置本地管理员的密码 1、创建组策略 2、在AD域中添加脚本 3、注意脚本的路径&#xff1a;就是打开 Show Files 目录&#xff0c;保证在客户端也能正常访问 4、本例建了2个脚本&#xff0c;一个是用来测试…

当《孤注一掷》照进现实,创邻科技Galaxybase助反诈一臂之力

“想成功&#xff0c;先发疯&#xff0c;不顾一切向钱冲&#xff1b;拼一次&#xff0c;富三代&#xff0c;拼命才能不失败。” 这看似振奋、实则让人背后发凉的口号来自于电影《孤注一掷》&#xff0c;它的背后是无数受害人血泪交织的受骗故事。 作为一部反诈题材电影&…

若依微服务版部署到IDEA

1.进入若依官网&#xff0c;找到我们要下的微服务版框架 2.点击进入gitee,获取源码&#xff0c;下载到本地 3.下载到本地后&#xff0c;用Idea打开&#xff0c;点击若依官网&#xff0c;找到在线文档&#xff0c;找到微服务版本的&#xff0c;当然你不看文档&#xff0c;直接按…

【从零学习python 】69. 网络通信及IP地址分类解析

文章目录 网络通信的概念IP地址IP地址的分类A类地址B类地址C类地址D类地址E类地址私有地址 进阶案例 网络通信的概念 简单来说&#xff0c;网络是用物理链路将各个孤立的工作站或主机相连在一起&#xff0c;组成数据链路&#xff0c;从而达到资源共享和通信的目的。 使用网络…

适用于各阶段Java程序员的面试备战/避坑指南

最近阅读了一些找工作的文章&#xff0c;特别是看了一位00后找工作的经历&#xff0c;历时2个月&#xff0c;使用了各种途径&#xff0c;也遇到了各类公司。看完之后&#xff0c;感慨后生可畏。其中涉及到了很多的技巧、踩坑和事项&#xff0c;提炼出来&#xff0c;以供大家享用…

互联网企业如何在线编写产品说明书?

互联网企业在线编写产品说明书是一个重要的工作环节&#xff0c;它能够帮助企业有效地传达产品的特点、功能和使用方法&#xff0c;提高用户的使用体验。 编写一份优秀的产品说明文档对于企业来说非常重要&#xff0c;它可以帮助用户理解产品的功能、使用方法和优势&#xff0c…

《深入浅出OCR》前言知识(一):机器学习知识总结

✨专栏介绍&#xff1a; 经过几个月的精心筹备&#xff0c;本作者推出全新系列《深入浅出OCR》专栏&#xff0c;对标最全OCR教程&#xff0c;具体章节如导图所示&#xff0c;将分别从OCR技术发展、方向、概念、算法、论文、数据集等各种角度展开详细介绍。 &#x1f468;‍&…

解决css英文内容不自动换行的问题

解决css英文内容不自动换行的问题 这里主要是针对CMS后台管理系统添加进入数据库&#xff0c;再抓取出来前端显示的英文不换行的问题的情况 1.一般常见的就是英文不自动换行&#xff0c;或者英文换行单词背截断的问题。 这种处理方法通过前端样式就可以解决&#xff0c;方法网…

R包开发1:RStudio 与 GitHub建立连接

目录 1.安装Git 2-配置Git&#xff08;只需配置一次&#xff09; 3-用SSH连接GitHub(只需配置一次) 4-创建Github远程仓库 5-克隆仓库到本地 目标&#xff1a;创建的R包&#xff0c;包含Git版本控制&#xff0c;并且能在远程Github仓库同步&#xff0c;相当于发布在Github。…

Vue报错 TypeError: this.getOptions is not a function

一般而言这是因为sass而报出来的错误 我们先删除node_modules&#xff0c;然后重新安装依赖 如果使用的是node-sass&#xff0c;则需要考虑正确的版本 示例 npm install sass-loader7.3.1 node-sass4.14.1 --save-dev 如果使用的是sass&#xff0c;则使用以下命令 npm i -…

第八章:Echarts统计功能【基于Servlet+JSP的图书管理系统】

Echarts统计 1.图书统计 通过Echarts根据不同的数据类型统计数据的数量。并且通过柱状图来展示 实现的步骤&#xff1a; 引入echars的js文件 然后定义柱状图展示的div 然后是基础的js代码 <script type"text/javascript">// 基于准备好的dom&#xff0c;初始…