Junit4入门之如何编写好的测试类

Junit4入门之如何编写好的测试类

Junit4入门之如何编写好的测试

本节可以选择性浏览,跳过也不影响单元测试的学习使用。

在使用junit前, 我们需要了解一些规则,如何去写好一个测试类。

之所以放在junit前说明,是因为单元测试不一定只能用junit去做,就算我们什么软件依赖都不用,也是可以做的,就是会麻烦点,不要下意识的觉得单元测试=Junit,应该是单元测试 > Junit。

市面上单元测试并不是只有junit一家的,还有许多其他的框架模块,只是相比之下它们没有junit普及。而且有些公司还有内部的单元测试框架,也未必是基于junit开发的。

甚至必要的时候,哪怕不用Juint,也要进行单元测试,这就只能用Java原生的断言语句等等了。

1)java中断言(assert)的使用

一开始我以为断言是junit中的特色,其实不然,断言是一个编程术语,常用于单元测试中,甚至它都并不只存在于java。

而java中的断言,是在JDK1.4后开始使用的,关键字是assert,它主要是用在代码开发和测试时期,用于对某些数据进行预期判断,如果结果不符合自己的预期,程序就警告或退出。

它的语法大概如下:

语法①:assert condition

condition代表一个布尔类型的条件表达式,如果为真,就继续正常运行,如果为假,则异常退出

public static void main(String[] args) { double x = Math.abs(-123.45); assert x >= 0; System.out.println(x);}

这里我断言x>=0,如果计算结果符合我的预期则无事发生,如果计算结果x小于0,则不符合我的预期,断言失败,抛出AssertionError。

语法②:assert condition : message

condition和上面是一样的,冒号后的message通常用于断言失败后的异常提示信息,它就是个传入到AssertionError构造参数里的值,用于我们自定义错误详情的,这里就不放代码了,大家可以自己试试。

关于使用断言还有个最重要的规则:程序的任何行为都不能依赖断言,千万不要把断言当成程序中的逻辑来使用,也就是你的代码即便删除里面所有的断言语句,它的逻辑和之前也是不能有任何变化的。因为它只是用于测试和开发的,甚至JVM默认都是关闭断言使用的,如果没有开启断言,程序会自动忽略所有断言语句,仿佛它们并不存在,要执行assert语句,必须给Java虚拟机传递-enableassertions(可简写为**-ea**)参数启用断言,也可以使用-disenableassertion(简写为**-da)参数关闭断言**(默认就是关闭的)。

最后,虽然java有提供断言,但我们实际开发中却很少使用它,因为如果要使用它去测试,还不如直接用Junit框架去写单元测试的代码,Junit也提供了断言的语句。

虽然我们用不上java里的断言,但是也要有所了解,并且大部分的断言其实逻辑都是差不多的。

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月12日
下一篇 2022年6月12日

相关推荐

  • 热门蓝牙音响测评百元-千元入门!Bose/猫王/几光雕塑家/马歇尔

    大家好,我是胡迪警长,这期来一篇音响测评! 音响是能提高居家幸福感的神器,不论是男女老少,家里摆上一台给无聊的生活增加乐趣,如今疫情防控成了常态化,虽然期待不戴口罩随便旅游的到来,…

    2022年7月17日
  • Typescript – 怎么理解协变和逆变

    首先协变(Covariance)和逆变(contravariance),这俩概念不是TS特有的,很多有类型系统的语言都有一样的概念,比如C#,JAVA等。要理解这两个概念,让我们先…

    2022年8月18日
  • 原来,人这辈子,除了有定数,还会碰到这3个“变数”

    01 有道是“得之偶然,失之必然,顺其自然,平淡安然。” 无论是偶然也好,还是必然也罢,它们就像是一对“矛盾”,围绕在我们的身边。人生,就是偶然和必然相互结合的过程。 说得直白一点…

    2022年5月6日
  • 龙竹科技预计上半年营收2亿元同比增42%:“以竹代塑”新品研发有序进行

    挖贝网7月26日消息,“北交所竹制品第一股”龙竹科技(831445)发布2022年半年度业绩预告显示,预计上半年实现营业收入2.02亿元,同比增42.16%;归母净利润3400至3…

    2022年8月4日
  • 好听的励志句子,励志精辟经典语句

    1.学会放弃,拽的越紧,痛苦的是自己。 错过落日余晖,还可以期待满天繁星 2.让结局不留遗憾,让过程更加完美。 你上三流的学校,并不代表要过三流的人生 3.懂得拒绝,活得不纠结。 …

    2022年5月4日
  • 易烊千玺有气无力回应全文分析

    我将此次发文拆分一下,来表达一下我的想法。 ① 是的,现在官方已经回复了,你确实有解释的立场了?但是我觉得对你来说解释清楚也没有那么的难,只要你把参加面试的整个过程的细节详详细细的…

    2022年7月19日
  • 雷军8月将携小米工程样车亮相,小米汽车8月将开启系列测试

    从小米相关人士及合作伙伴处获悉,小米造车即将迎来一个重大节点——在8月的一场公开活动上,雷军将会带着小米的工程样车亮相,随后便开启一系列测试。小米的员工及合作伙伴还透露了一个关键信…

    2022年7月17日
  • LCD液晶的触摸定制需求有哪些?

    大家在定制LCD液晶屏的时候,有没有这么一种问题,我们想要一款触摸屏,但是呢,具体的参数不知道,只是有这种想法呢。 有的朋友可能会询问厂家,在没有确定的情况下,会问液晶屏的尺寸,就…

    2022年6月25日
  • 为何万年1200万像素,iPhone手机的影像实力却这么能打?

    现在购买手机时,手机的拍照能力已经成为了重要的参考因素之一,不少国内手机厂商都在极力宣传自家的4800W、6400W镜头模组,有的甚至上到了一亿像素。 最近就推出了主打大底传感器的…

    2022年7月19日
  • 从沈南鹏和达利欧的对话,我看到了智能电动汽车投资的大逻辑

    近期桥水创始人瑞·达利欧和红杉全球执行合伙人沈南鹏进行了一次线上对话,对历史周期、投资趋势、中国市场等话题进行了探讨,这里映射到智能电动汽车赛道,进行简要分析。 投资方法论,从历史…

    2022年6月29日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息