JavaEE之JUnit—据说专业的程序员都用这个做测试
温馨提示:本文阅读需要5分钟,建议收藏后阅读!
作为一个专业的开发,除了可以写代码,还应该能够测试自己的代码。今天就来给大家介绍一个用来测试的库—JUnit
我是专业的
先来熟悉几个基本概念
测试:
测试是选择适当的测试用例执行被测试程序的过程,它的目的在于发现程序错误。
调试:
诊断程序的错误性质、出错位置并加以改正的过程。通常由编码人员承担。
失败:
当一个程序不能运行时称失败。失败是系统执行中出现的情况,失败源于代码缺陷。
错误:
程序中的缺陷所产生的不正确的结果称错误。程序中的人为缺陷可导致系统失败(程序不能运行),也可能出现错误结果(程序可运行)。
“测试只能证明程序有错(有缺陷),不能保证程序无错”。因此,能够发现程序缺陷的测试是成功的。当然,最理想的是进行程序正确性的完全证明,遗憾的是除非是极小的程序,至今还没有实用的技术证明任一程序的正确性。为使程序有效运行,测试与调试是唯一手段。
测试的根本目的就是为了发现尽可能多的缺陷。这里的缺陷是一种泛称,它可以指功能的错误,也可以指性能低下,易用性差等。因此,测试是一种“破坏性”行为(不破不立)。
黑盒测试
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试。它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
白盒测试
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行。按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
JUnit
JUnit 是一个 Java 语言的单元测试框架。
官网:http://junit.org/junit4/
在 Eclipse 中使用 JUnit
1) 已有或新建一个工程。
2) 右击工程,Build Path -> Configure Build Path…
3) 添加完成。
这样我们的JUnit就添加完成了
我们来写一个简单的计算器(加减乘除)!
创建JUnit
然后我们怎么做呢?
看到没有,多出来一个Junit窗口!
我们一起来看一下 Junit 注解的含义
那么现在我们来如何使用 JUnit
右键 Run As → JUnit Test
绿色表示我们的代码运行成功了,我们可以用 log4j 输出了运行的结果!
test()就是我们的测试用例,我们可以有多个测试用例,像这样!
我们来看一下其他的注解
@Ignore 注解表示忽略当前的测试用例,不会执行此用例!
通过 log 的输出信息我们可以看出先是运行 BeforeClass,之后运行 Before 接着运行 testadd 之后是 After。再来运行一次 Before 接着运行 testsubstract 之后是 After,最后是 AfterClass。
BeforeClass和 AfterClass 只运行一次,每运行一个 test 之前,都要先运行Before,运行 test 之后要运行一个 After 。
Junit 断言
作为一个专业的开发人员,对于 JUnit 建议大家使用断言。
现在我们来演示一下如何使用断言
assertEquals() 如果比较的两个对象是相等的,此方法将正常返回;否则失败显示在JUnit的窗口测试将中止。
上面是测试成功,我们来修改一下设置
测试失败,指出失败的地方
身下的就不一一演示了小伙伴们自己测试一下吧!
assertSame() 和 assertNotSame() 方法测试两个对象引用指向完全相同的对象。
assertNull() 和 assertNotNull() 方法测试一个变量是否为空或不为空(null)。
assertTrue() 和 assertFalse() 方法测试if条件或变量是 true 还是 false。
assertArrayEquals() 将比较两个数组,如果它们相等,则该方法将继续进行不会发出错误。否则失败将显示在JUnit窗口和中止测试。
下面是数据库的测试类
这样我们的测试类就写好了,并且已经通过了测试。
不放心的小伙伴,可以自己补一个 log4j 输出信息看一下。
那么今天就到这里了!
伙伴们再见了!
拜拜!