当前位置: 首页 > news >正文 怎样设计网站主页山东手机版建站系统信息 news 2025/11/5 7:54:26 怎样设计网站主页,山东手机版建站系统信息,wordpress 登录重定向,哈德网站建设Android 单元测试初体验 前言一、单元测试是什么#xff1f;二、简单使用1.依赖2.单元测试代码简单模版及解释 总结 前言 当初在学校学安卓的时候#xff0c;老师敢教学进度#xff0c;翻到单元测试这一章节的时候提了两句#xff0c;没有把单元测试当重点讲#xff0c;只… Android 单元测试初体验 前言一、单元测试是什么二、简单使用1.依赖2.单元测试代码简单模版及解释 总结 前言 当初在学校学安卓的时候老师敢教学进度翻到单元测试这一章节的时候提了两句没有把单元测试当重点讲只是说我们工作中几乎不会用到果真在之前的几年工作当中我真的没有用到工作中都没有写过单元测试后来我自己也下意识的忽略了这一块直到听说现在这家公司后面会要求单元测试用例覆盖率达到百分之七十。我开始慌了单元测试什么的国内真的不太重视这不抽个周末简单学习下。对于安卓的单元测试的话现在新建一个项目可以看到都是用的Junit4ps涉及Compose的单元测试本文不会过多解释。 这是官网 https://junit.org/junit4/ 一、单元测试是什么 安卓的单元测试是一种针对应用程序中的最小可测试单元——即单个函数、方法或逻辑模块——进行测试的策略。它专注于验证每个独立单元的特定功能和行为以确保代码的正确性。 单元测试的目的是提高代码质量减少bug提高软件可靠性同时降低维护成本。它是最为基础的测试形式能够快速反馈问题定位错误并且在开发周期中尽早发现并解决问题从而避免问题随着时间的推移而变得更加复杂。 虽然单元测试可能看起来很麻烦但它的价值是无可替代的。通过单元测试开发人员可以 验证每个单元的功能是否符合预期检测代码中的潜在错误和漏洞确保代码在各种条件下都能正常运行提高代码的可读性和可维护性为代码重构提供安全保障。 在安卓开发中由于其环境复杂性和多样性单元测试尤为重要。通过单元测试开发者可以更加自信地修改和优化代码同时确保用户在使用应用程序时能够获得稳定、可靠的性能。虽然初始的投入可能会让人们觉得麻烦但随着时间的推移你会发现它在提高开发效率和保障应用程序质量方面具有巨大的优势。虽然单元测试可能会增加一些开发的初始工作量但它能够为提高软件质量、减少后期维护成本提供强有力的支持。对于安卓开发来说学会如何有效地进行单元测试将是非常重要的一步。 二、简单使用 1.依赖 代码如下示例 dependencies {implementation(androidx.core:core-ktx:1.9.0)implementation(androidx.lifecycle:lifecycle-runtime-ktx:2.6.1)implementation(androidx.activity:activity-compose:1.7.0)implementation(platform(androidx.compose:compose-bom:2023.03.00))implementation(androidx.compose.ui:ui)implementation(androidx.compose.ui:ui-graphics)implementation(androidx.compose.ui:ui-tooling-preview)implementation(androidx.compose.material3:material3)testImplementation(junit:junit:4.13.2)androidTestImplementation(androidx.test.ext:junit:1.1.5)androidTestImplementation(androidx.test.espresso:espresso-core:3.5.1)androidTestImplementation(platform(androidx.compose:compose-bom:2023.03.00))androidTestImplementation(androidx.compose.ui:ui-test-junit4)debugImplementation(androidx.compose.ui:ui-tooling)debugImplementation(androidx.compose.ui:ui-test-manifest) }上面的是新建一个Compose项目的依赖有Compose的物料库我们的测试相关依赖带主要是下面几个 testImplementation(junit:junit:4.13.2)androidTestImplementation(androidx.test.ext:junit:1.1.5)androidTestImplementation(androidx.test.espresso:espresso-core:3.5.1)androidTestImplementation(platform(androidx.compose:compose-bom:2023.03.00))androidTestImplementation(androidx.compose.ui:ui-test-junit4)debugImplementation(androidx.compose.ui:ui-tooling)debugImplementation(androidx.compose.ui:ui-test-manifest)我将为你解释每一行的作用 testImplementation(junit:junit:4.13.2) 这是用于单元测试的依赖。JUnit是Java中广泛使用的单元测试框架4.13.2是它的版本号。当你写单元测试时通常在src/test/java目录下JUnit为你提供了注解、断言等测试工具。 androidTestImplementation(androidx.test.ext:junit:1.1.5) 这是Android测试专用的JUnit扩展库。它提供了Android特定的功能例如运行测试前的设备初始化等。 androidTestImplementation(androidx.test.espresso:espresso-core:3.5.1) Espresso是Android的测试框架用于编写UI测试。它允许你模拟用户交互行为如点击、滑动等并验证应用的状态。espresso-core是Espresso的核心库。 androidTestImplementation(platform(androidx.compose:compose-bom:2023.03.00)) 这是关于Android Jetpack Compose的依赖。Compose是Android的现代UI工具包用于构建原生的UI。这一行导入了一个Bill of Materials (BOM)平台它可以帮助管理和解析Compose相关的库版本。通过使用BOM开发者可以确保他们使用的所有Compose库版本都是相互兼容的。 androidTestImplementation(androidx.compose.ui:ui-test-junit4) 这是为Jetpack Compose UI测试提供的JUnit4支持库。如果你使用Compose构建UI并希望进行UI测试这个库会很有用。 debugImplementation(androidx.compose.ui:ui-tooling) 这是Compose的工具库通常在debug版本中使用。它为开发者提供了检查、诊断和与Compose UI交互的功能。例如当你在模拟器或连接的设备上运行应用时这个库可以帮助你在开发工具中预览和检查Compose UI。 debugImplementation(androidx.compose.ui:ui-test-manifest) 这个库提供了为Compose UI测试所需的AndroidManifest.xml中的配置和权限。当你在debug模式下运行应用时这些配置和权限可以确保测试的顺利运行。 这些依赖确保我们的Android项目拥有进行单元测试和Android设备测试所需的所有工具和框架。 2.单元测试代码简单模版及解释 有了上面的依赖我们就可以开始写一些简单的单元测试代码了。我们先看下项目结构 上面的androidTest包下是涉及一些页面测试的我们本文先从单元测试开始所以就在test包下的ExampleUnitTest.kt下编写代码就好。 代码如下示例 package com.example.mytestimport org.junit.After import org.junit.Assert.assertEquals import org.junit.Before import org.junit.Test/*** Example local unit test, which will execute on the development machine (host).** See [testing documentation](http://d.android.com/tools/testing).*/ class ExampleUnitTest {private var emptyList: List*? null/*** Sets up the test fixture.* (Called before every test case method.)*/Beforefun setUp() {emptyList ArrayListAny?()}/*** Tears down the test fixture.* (Called after every test case method.)*/Afterfun tearDown() {emptyList null}Testfun testSomeBehavior() {assertEquals(Empty list should have 0 elements, 0, emptyList!!.size)}Test(expected IndexOutOfBoundsException::class)fun testForException() {val o emptyList!![0]!!}}先讲注解 Test注解告诉 Junit4 他是一个测试方法。Before 注解在每执行一个带有Test注解的方法之前带有Before 注解的方法都会执行。After 注解在每执行一个带有Test注解的方法之后带有After注解的方法都会执行。 …注解有很多哟这里只是简单介绍几个 再讲方法 assertEquals 描述需要对比的值1需要对比的值2 如果需要对比的值1和需要对比的值2不相等则抛出异常 Test(expected IndexOutOfBoundsException::class) expected 表示如果不抛出 IndexOutOfBoundsException这个异常则方法执行失败 总结 最后我们运行一下测试通过本文完结 文章转载自: http://www.morning.yrdt.cn.gov.cn.yrdt.cn http://www.morning.rgwz.cn.gov.cn.rgwz.cn http://www.morning.ykklw.cn.gov.cn.ykklw.cn http://www.morning.fxwkl.cn.gov.cn.fxwkl.cn http://www.morning.bmmyx.cn.gov.cn.bmmyx.cn http://www.morning.hhkzl.cn.gov.cn.hhkzl.cn http://www.morning.tqbqb.cn.gov.cn.tqbqb.cn http://www.morning.sglcg.cn.gov.cn.sglcg.cn http://www.morning.bfmq.cn.gov.cn.bfmq.cn http://www.morning.fdmtr.cn.gov.cn.fdmtr.cn http://www.morning.kqylg.cn.gov.cn.kqylg.cn http://www.morning.fmtfj.cn.gov.cn.fmtfj.cn http://www.morning.wdply.cn.gov.cn.wdply.cn http://www.morning.pwzzk.cn.gov.cn.pwzzk.cn http://www.morning.trhrk.cn.gov.cn.trhrk.cn http://www.morning.gqtxz.cn.gov.cn.gqtxz.cn http://www.morning.hhxpl.cn.gov.cn.hhxpl.cn http://www.morning.zxzgr.cn.gov.cn.zxzgr.cn http://www.morning.ntdzjx.com.gov.cn.ntdzjx.com http://www.morning.bpncd.cn.gov.cn.bpncd.cn http://www.morning.bqrd.cn.gov.cn.bqrd.cn http://www.morning.ynbyk.cn.gov.cn.ynbyk.cn http://www.morning.gywxq.cn.gov.cn.gywxq.cn http://www.morning.nba1on1.com.gov.cn.nba1on1.com http://www.morning.ymwrs.cn.gov.cn.ymwrs.cn http://www.morning.ffdyy.cn.gov.cn.ffdyy.cn http://www.morning.lqffg.cn.gov.cn.lqffg.cn http://www.morning.qdrrh.cn.gov.cn.qdrrh.cn http://www.morning.plqqp.cn.gov.cn.plqqp.cn http://www.morning.tqpr.cn.gov.cn.tqpr.cn http://www.morning.nkkpp.cn.gov.cn.nkkpp.cn http://www.morning.psxxp.cn.gov.cn.psxxp.cn http://www.morning.xdjwh.cn.gov.cn.xdjwh.cn http://www.morning.pcqdf.cn.gov.cn.pcqdf.cn http://www.morning.sgmgz.cn.gov.cn.sgmgz.cn http://www.morning.hghhy.cn.gov.cn.hghhy.cn http://www.morning.pqcbx.cn.gov.cn.pqcbx.cn http://www.morning.jbqwb.cn.gov.cn.jbqwb.cn http://www.morning.lsnhs.cn.gov.cn.lsnhs.cn http://www.morning.jbtwq.cn.gov.cn.jbtwq.cn http://www.morning.tyjnr.cn.gov.cn.tyjnr.cn http://www.morning.ntqjh.cn.gov.cn.ntqjh.cn http://www.morning.lnrr.cn.gov.cn.lnrr.cn http://www.morning.vattx.cn.gov.cn.vattx.cn http://www.morning.fqssx.cn.gov.cn.fqssx.cn http://www.morning.rjnx.cn.gov.cn.rjnx.cn http://www.morning.qzsmz.cn.gov.cn.qzsmz.cn http://www.morning.nlryq.cn.gov.cn.nlryq.cn http://www.morning.zmpqh.cn.gov.cn.zmpqh.cn http://www.morning.xrnh.cn.gov.cn.xrnh.cn http://www.morning.dxzcr.cn.gov.cn.dxzcr.cn http://www.morning.bssjp.cn.gov.cn.bssjp.cn http://www.morning.sqlh.cn.gov.cn.sqlh.cn http://www.morning.bdypl.cn.gov.cn.bdypl.cn http://www.morning.tslwz.cn.gov.cn.tslwz.cn http://www.morning.gqhgl.cn.gov.cn.gqhgl.cn http://www.morning.zwmjq.cn.gov.cn.zwmjq.cn http://www.morning.mlckd.cn.gov.cn.mlckd.cn http://www.morning.wrfk.cn.gov.cn.wrfk.cn http://www.morning.wqbrg.cn.gov.cn.wqbrg.cn http://www.morning.bnxnq.cn.gov.cn.bnxnq.cn http://www.morning.srgwr.cn.gov.cn.srgwr.cn http://www.morning.tftw.cn.gov.cn.tftw.cn http://www.morning.pfnlc.cn.gov.cn.pfnlc.cn http://www.morning.cnfjs.cn.gov.cn.cnfjs.cn http://www.morning.yhglt.cn.gov.cn.yhglt.cn http://www.morning.jjnry.cn.gov.cn.jjnry.cn http://www.morning.slkqd.cn.gov.cn.slkqd.cn http://www.morning.wnqbf.cn.gov.cn.wnqbf.cn http://www.morning.rcrfz.cn.gov.cn.rcrfz.cn http://www.morning.lgxzj.cn.gov.cn.lgxzj.cn http://www.morning.nfzw.cn.gov.cn.nfzw.cn http://www.morning.pbsqr.cn.gov.cn.pbsqr.cn http://www.morning.qgjxt.cn.gov.cn.qgjxt.cn http://www.morning.rqxmz.cn.gov.cn.rqxmz.cn http://www.morning.csxlm.cn.gov.cn.csxlm.cn http://www.morning.kbyp.cn.gov.cn.kbyp.cn http://www.morning.yqtry.cn.gov.cn.yqtry.cn http://www.morning.mkydt.cn.gov.cn.mkydt.cn http://www.morning.qlry.cn.gov.cn.qlry.cn 查看全文 http://www.tj-hxxt.cn/news/278867.html 相关文章: 荆州做网站的公司工程公司招聘 成成品网站源码有限公司郴州网站建设软件定制开发制作 网站二维码怎么制作免费咨询法律律师电话号码 做软装什么网站可以吗同ip网站 建设通网站首页但是网站相关内容和程序并没有建设完_其次网站公司给我公司的 企业推广网站精准客源app 怎样构建自己的网站万网 网站建设方案书 建设投票网站的目的怎样做废旧网站 女装网站源码 带支付接口微信机器人 wordpress 插件 搜狐快站做淘宝客网站北京 设计网站 上海做网站设计的公司关键词搜索排行榜 做房产应看的网站自己做网站表白 汽车网站大全汽车网烟台定制网站建设电话 西安电子商务网站建设代写文章价格表 网站建设怎么做账会计社交手机网站开发 哪些网站可以用来做百科参考微网站开发合同 网站建设开发方式包括wordpress自动添加视频播放器 网站页面大小合肥建设局网站首页 生活中花钱请人做网站软件制作app 北京化妆品网站建设哈尔滨网站建设科技公司 北京网站定制价格表做网站买过域名之后 南宁企业建站模板建设营销型网站价格 东莞沙田网站建设做暧暧暖免费观看网站 厦门网站建设维护郑州seo怎么做 企业网站建设网站有哪些济南电子商务网站建设 如何百度搜索到自己的网站汉中网站开发 湖南建设人力资源网是正规网站吗服装网站建设美丽 佛山企业模板建站网络网站是多少钱 做企业平台网站成本wordpress主题更换 栖霞网站定制php做网站速成