java基础之测试类

您所在的位置:网站首页 java的测试环境 java基础之测试类

java基础之测试类

2024-03-21 12:12| 来源: 网络整理| 查看: 265

Junit单元测试

测试可以分为两类:一类是黑盒测试,一类是白盒测试。

黑盒测试:不需要写代码,不关注内部的流程(盒子相对于测试人员来说是黑的,看不到内部的结构),只需要给输入值,看程序是否可以给出期望的输出结果白盒测试:需要写代码,同时需要关注内部的流程(盒子相对于测试人员来说是白的,是可以看到的,我们也需要关注内部的流程)。

而Junit属于白盒测试

步骤:

定义一个测试类

建议:

测试类名:被测试的类名Test CalculatorTest包名:xx.xx.xx.test cn.itcast.test

定义测试方法:可以独立运行

建议:

方法名:test测试的方法名 testAdd()返回值:void参数列表:空参

给方法加 @Test

导入Junit依赖环境

判定结果:

红色:失败绿色:成功

我们一般使用Assert类下的静态方法assertEquals(expected, actual)去处理我们的期望结果和输出结果

Assert.assertEquals(3, result);

两个参数分别是:期望值 程序结果值

为什么要使用Assert.assertEquals(expected, actual)去处理测试结果呢?

因为我们规定红色代表失败,绿色代表正确。当我们使用一个测试方法去测试一个计算机的加法方法时,最后只是输出这个结果(假如没有异常的发生)。如果我们输入1和3,我们期望得到结果4,但是我们输出的是2,我们期望得到的是4,这个时候得到的结果不符合我们的预期,但是运行结果仍然是绿色的(代表正确),是不是就不太正确,这个时候我们可以在最后使用Assert的assertEquals方法比较预期值和程序输出的结果值,如果相等,就会使绿色的,不相等就是红色的。这个时候是不是就符合我们对绿色和红色的定义了。

package cn.itcast.test; import cn.itcast.junit.Calculator; import org.junit.Assert; import org.junit.Test; public class CalculatorTest { /** * 测试add方法 */ @Test public void testAdd(){ Calculator c = new Calculator(); int a = 1, b = 2; int result = c.add(1, 2); Assert.assertEquals(3, result); } /** * 测试sub方法 */ @Test public void testSub(){ Calculator c = new Calculator(); int a = 1, b = 2; int result = c.sub(1, 2); Assert.assertEquals(-1, 2); } }

使用测试类的好处:

下面是摘自知乎的一段话

我们在写程序的过程中,免不了要对一段代码进行测试。这个时候比较懒的做法就是新建一个类(一个类只能有一个主方法,程序运行的入口),让这段代码在这个类的主方法中运行,但是测试完之后还得删除,比较麻烦。但是测试类呢,可以定义多种方法,每一个方法都可以看做是程序的入口,这样一个测试类就可以有多个独立运行的”主方法“了,虽然并不是真正的主方法,但是可以这样来用。每个测试类有多个可以运行的main方法了,每个测试方法都可以单独运行,具体运行哪个方法由自己来指定,方便测试且整洁。

两个注解

@Before

在一个测试方法之前加上@Before它就成为了初始化方法,在所有测试方法执行之前都会自动先执行该方法,一般用于资源的申请

@After

在一个测试方法之前加上@After它就成为了释放资源方法,在所有测试方法执行之后都会自动执行该方法。

被@Before修饰的方法会在测试方法执行之前先被执行

被@After修饰的方法会在测试方法执行之后被执行

被@Before或被@After修饰的方法无论测试方法是否出一场都会执行



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3