当前位置 > it书童 > java > 正文
推荐小册
Java的Lambda表达式
Java的Lambda表达式

聊聊jvm
jvm调优

java异常处理
java异常处理机制

java拾遗
java知识点,java面试题

java多线程
java多线程入门

学习spring源码
如何阅读spring源码

仿 spring 自制框架
造轮子,模仿 spring 自制一个框架

SpringCloud
SpringCloud微服务入门

微服务商城
使用微服务搭建一个电商项目

SpringBoot
SpringBoot入门学习,SpringBoot是什么

Junit 单元测试

java it书童 2020-08-13 09:46:29 0赞 0踩 89阅读 0评论

测试分类

  1. 黑盒测试

不需要写代码,给输入值,看程序是否能够输出期望的值。不知道里面的实现原理,如我们平时用手机软件,不需要知道里面的代码是怎么执行的

  1. 白盒测试

需要写代码的。关注程序具体的执行流程。要清楚地知道各行代码的流程

原始测试流程:写一个类,然后再写一个测试类调用方法,看输出的结果是否符合预期

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }

    public int sub(int a, int b) {
        return a - b;
    }
}

手动写方法测试

public class CalculatorTest {
    public static void main(String[] args) {
        Calculator c = new Calculator();
        int result = c.add(1, 2);
        System.out.println(result);

        int result2 = c.sub(5, 3);
        System.out.println(result2);
    }
}

使用 Junit 进行测试

步骤:定义一个测试类(测试用例)

测试类名: 格式为被测试的类名Test 如 CalculatorTest

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

方法名:test测试的方法名 testAdd()

返回值:void

参数列表:空参

给方法加 @Test

导入junit依赖环境

判定结果:

红色:失败

绿色:成功

一般我们会使用断言操作来处理结果 Assert.assertEquals(期望的结果,运算的结果);

补充:

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

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

package junit;

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }

    public int sub(int a, int b) {
        return a - b;
    }
}
package junit.test;
import junit.Calculator;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class CalculatorTest {
    /**
     * 初始化方法
     */
    @Before
    public void init() {
        System.out.println("init");
    }

    /**
     * 释放资源方法
     */
    @After
    public void close() {
        System.out.println("after");
    }

    @Test
    public void testAdd() {
        Calculator c = new Calculator();
        int result = c.add(1, 2);
        Assert.assertEquals(3, result);
    }

    @Test
    public void testSub() {
        Calculator c = new Calculator();
        int result = c.sub(10, 3);
        Assert.assertEquals(7, result);
    }
}

结果:

关于我
一个文科出身的程序员,追求做个有趣的人,传播有价值的知识,微信公众号主要分享读书思考心得,不会有代码类文章,非程序员的同学请放心订阅
转载须注明出处:https://www.itshutong.com/articles/607/junit-unit-test