龙空技术网

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

白夜java 133

前言:

此时朋友们对“java写一个类并测试它”大约比较看重,姐妹们都想要学习一些“java写一个类并测试它”的相关内容。那么小编也在网络上搜集了一些对于“java写一个类并测试它””的相关资讯,希望大家能喜欢,咱们快快来了解一下吧!

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里的断言,但是也要有所了解,并且大部分的断言其实逻辑都是差不多的。

标签: #java写一个类并测试它