java:JUnit单元测试

背景

一般软件测试分为白盒测试和黑盒测试

  • 黑盒测试:就是现在一般测试人员的工作点点点,只要功能正常就行
  • 白盒测试:需要关注代码的具体执行过程,是需要写代码的

JUnit 框架是进行白盒测试使用的。

不使用单元测试框架

没有单元测试框架的时候我们是这样写测试用例的:
src/cn.mycompany/myCalculator/Calculator.java

package cn.mycompany.myCalculator;

/**
 * 计算器类
 */
public class Calculator {
    
    
    /**
     * 加法
     * @param a
     * @param b
     * @return
     */
    public int add (int a , int b){
    
    
        return a + b;
    }

    /**
     * 减法
     * @param a
     * @param b
     * @return
     */
    public int sub (int a , int b){
    
    
        return a - b;
    }
}

src/cn.mycompany/myCalculator/CalculatorTest.java

package cn.mycompany.myCalculator;

public class CalculatorTest {
    
    

    public static void main(String[] args) {
    
    
		// 在同一个package,所以不需要导入Calculator
        //创建对象
        Calculator c = new Calculator();
        //调用
       /* int result = c.add(1, 2);
        System.out.println(result);*/

        int result = c.sub(2, 1);
        System.out.println(result);
    }
}

这样有几个缺点:
1、比如这里测试加减,必须写完一个注释掉再写另一个
2、用 println 的方式不是很直观的看到用例是否执行通过
3、需要在main方法中执行,不能单个函数执行

使用单元测试框架JUnit

src/cn.mycompany/test/CalculatorTest.java

package cn.mycompany.test;

import cn.mycompany.myCalculator.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("close...");
    }


    /**
     * 测试add方法
     */
    @Test
    public void testAdd(){
    
    
       // System.out.println("我被执行了");
        //1.创建计算器对象
        System.out.println("testAdd...");
        Calculator c  = new Calculator();
        //2.调用add方法
        int result = c.add(1, 2);
        //System.out.println(result);

        //3.断言  我断言这个结果是3
        Assert.assertEquals(3,result);

    }

    @Test
    public void testSub(){
    
    
        //1.创建计算器对象
        Calculator c  = new Calculator();
        int result = c.sub(1, 2);
        System.out.println("testSub....");
        Assert.assertEquals(-1,result);
    }
}

可以直接点击 testAdd 左边的运行执行
在这里插入图片描述
可以看到左下角执行的都是绿色代表成功,如果有红色代表失败

猜你喜欢

转载自blog.csdn.net/weixin_43972437/article/details/132104468