h5制作网站公司,义乌app制作公司,个人网站域名选择,创意设计app[TOC](Android 单元测试初体验(二)-断言) 前言
当初在学校学安卓的时候#xff0c;老师敢教学进度#xff0c;翻到单元测试这一章节的时候提了两句#xff0c;没有把单元测试当重点讲#xff0c;只是说我们工作中几乎不会用到#xff0c;果真在之前的几年工作当中我真的没…[TOC](Android 单元测试初体验(二)-断言) 前言
当初在学校学安卓的时候老师敢教学进度翻到单元测试这一章节的时候提了两句没有把单元测试当重点讲只是说我们工作中几乎不会用到果真在之前的几年工作当中我真的没有用到工作中都没有写过单元测试后来我自己也下意识的忽略了这一块直到听说现在这家公司后面会要求单元测试用例覆盖率达到百分之七十。我开始慌了单元测试什么的国内真的不太重视这不抽个周末简单学习下。对于安卓的单元测试的话现在新建一个项目可以看到都是用的Junit4ps涉及Compose的单元测试本文不会过多解释。
这是官网 https://junit.org/junit4/
前一篇Android 单元测试初体验。 一、单元测试是什么
安卓的单元测试是一种针对应用程序中的最小可测试单元——即单个函数、方法或逻辑模块——进行测试的策略。它专注于验证每个独立单元的特定功能和行为以确保代码的正确性。
单元测试的目的是提高代码质量减少bug提高软件可靠性同时降低维护成本。它是最为基础的测试形式能够快速反馈问题定位错误并且在开发周期中尽早发现并解决问题从而避免问题随着时间的推移而变得更加复杂。
虽然单元测试可能看起来很麻烦但它的价值是无可替代的。通过单元测试开发人员可以
验证每个单元的功能是否符合预期检测代码中的潜在错误和漏洞确保代码在各种条件下都能正常运行提高代码的可读性和可维护性为代码重构提供安全保障。
在安卓开发中由于其环境复杂性和多样性单元测试尤为重要。通过单元测试开发者可以更加自信地修改和优化代码同时确保用户在使用应用程序时能够获得稳定、可靠的性能。虽然初始的投入可能会让人们觉得麻烦但随着时间的推移你会发现它在提高开发效率和保障应用程序质量方面具有巨大的优势。虽然单元测试可能会增加一些开发的初始工作量但它能够为提高软件质量、减少后期维护成本提供强有力的支持。对于安卓开发来说学会如何有效地进行单元测试将是非常重要的一步。
二、断言
1.addition_isCorrect
我们新建一个项目单元测试代码是这样的 代码如下示例
class ExampleUnitTest {Testfun addition_isCorrect() {assertEquals(4, 2 2)}
}方法名就和我们开发时不一样这个规范是 驼峰命名操作 a d d i t i o n 下划线 驼峰命名结果 ( i s C o r r e c t ) a d d i t i o n i s C o r r e c t 驼峰命名操作addition下划线 驼峰命名结果(isCorrect) addition_isCorrect 驼峰命名操作addition下划线驼峰命名结果(isCorrect)additionisCorrect 翻译过来就是加法正确。
那么我们就可以显而易见的知道assertEquals这个方法的意思断言两个长度相等。如果不是则抛出AssertionError。 参数 第一个值为预期的值第二个值为实际的值那么这个代码就可以这样解释 assertEquals(4, 2 2) 2 2 4 22 4 224
2.其他常用断言
代码如下示例 Testfun otherTest_isOK() {assert(true)assertTrue(true)assertFalse(false)assertNotNull(Object())assertNotEquals(4, 1 1)assertArrayEquals(emptyArray(), emptyArray())var a Object()var b aassertSame(a, b)var c Object()var d Object()assertNotSame(c, d)}为了方便我们直接写在一起并命名为otherTest_isOK
Test这是JUnit测试框架的注解用于标记函数为一个单元测试函数。fun otherTest_isOK() {...}这是函数定义函数名为otherTest_isOK并且没有返回值因为它的返回类型被推断为Unit而Unit是没有值的。
接下来是这个函数中的各个断言
assert(true)这是使用JUnit框架的断言方法用于检查条件是否为真。在这里断言条件为true所以断言会通过。assertTrue(true)这也是一个断言方法同样用于检查条件是否为真。在这里断言条件为true所以断言会通过。assertFalse(false)这是另一个断言方法用于检查条件是否为假。在这里断言条件为false所以断言会通过。assertNotNull(Object())这个断言检查提供的对象是否非空。由于创建了一个新的对象尽管它是空的断言将通过。assertNotEquals(4, 1 1)这个断言检查两个值是否不相等。在这个例子中4和2不相等所以断言将通过。assertArrayEquals(emptyArray(), emptyArray())这个断言检查两个数组是否相等。由于两个数组都是空的断言将通过。var a Object() var b a这里创建了两个对象引用它们引用的是同一个对象。assertSame(a, b)断言这两个引用指向的是同一个对象因此断言将通过。var c Object() var d Object()这里创建了两个不同的对象。assertNotSame(c, d)断言这两个引用指向的是不同的对象因此断言将通过。
总的来说这个测试函数中的所有断言都通过了所以函数名称为otherTest_isOK是非常合适的。这个函数没有对函数的返回值进行任何断言因为函数本身也没有返回值。 总结
本文简单介绍了安卓单元测试中的断言包括常用的assertEquals、assertTrue、assertFalse等方法以及用法示例。单元测试是提高代码质量、减少bug的重要手段掌握断言方法非常有助于编写有效的单元测试用例。