当前位置:   article > 正文

java基础之测试类_java测试类

java测试类

Junit单元测试

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

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

而Junit属于白盒测试

步骤

  1. 定义一个测试类

    建议:

    • 测试类名:被测试的类名Test CalculatorTest
    • 包名:xx.xx.xx.test cn.itcast.test
  2. 定义测试方法:可以独立运行

    建议:

    • 方法名:test测试的方法名 testAdd()
    • 返回值:void
    • 参数列表:空参
  3. 给方法加 @Test

  4. 导入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);
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

使用测试类的好处:

下面是摘自知乎的一段话

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

两个注解

  • @Before

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

  • @After

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/273983
推荐阅读
相关标签
  

闽ICP备14008679号