Java使用JUnit进行单元测试

本文介绍了如何使用JUnit进行Java单元测试,包括JUnit的优点、导入与使用步骤。通过一个具体的案例展示了如何编写测试类,使用断言进行预期值与实际值的对比。此外,还提到了@Before和@After等注解用于测试前后的资源初始化和释放。
摘要由CSDN通过智能技术生成

单元测试

单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,因此,单元测试就是针对Java方法的测试,进而检查方法的正确性。

JUnit测试工具的优点

  • Junit可以灵活的选择执行哪些测试方法,可以一件执行全部测试方法。
  • Junit可以生成全部方法的测试报告。
  • 单元测试中的某个方法测试失败了,不会影响其他测试方法的测试。

JUnit测试工具的使用

1.将JUnit的jar包导入到项目中。
  • IDEA通常会将JUnit工具进行整合,初次使用时会自动进行下载。
  • 如果IDEA没有整合好,需要手工将JUnit包导入到模块中。
    在这里插入图片描述
2.具体使用流程
  1. 编写测试方法:该测试方法必须是公共的无参数无返回值的非静态方法。
  2. 在测试方法上使用注解@Test,标注该方法是一个测试方法。
  3. 在测试方法中完成被测试方法的预期正确性测试。
  4. 选中测试方法,选择JUnit运行,如果测试良好则是绿色测试失败,则是红色
3.简单案例演示
A. 编写待测试类

类中有两个方法,其中add()为带有返回的值的方法,实现对输入的可变参数的求和(可变参数的使用参考),print()方法为不带返回的方法,代码如下所示:

	package com.junityanshi;
	
	public class Main1 {
	    public int add(int... num){
	        int sum = 0;
	        for (int i : num) {
	            sum+= i;
	        }
	        return sum;
	    }
	
	    public void print(){
	        System.out.println(10/10);
	        System.out.println("打印正常!!!");
	    }
	
	}
B. 编写测试类(类名随意)

注意:测试类中的方法需要为1. 公开的,无参数,无返回值 2. 测试方法需要使用@Test注解
在调用被测试方法之后,如果被测方法有返回值,则可以使用断言类进行预期值与实际值的自动对比。进行自动化测试。

样例代码如下:

	package com.junityanshi;
	
	import org.junit.Assert;
	import org.junit.Test;
	
	public class TestMain1 {
	    /*
	      测试方法:
	        1. 公开的,无参数,无返回值
	        2. 测试方法需要使用@Test注解
	     */
	    @Test
	    public void testAdd(){
	        Main1 m = new Main1();
	        int sum = m.add(1, 2, 3);
	        // 进行预期正确性测试,使用断言关键字
	        Assert.assertEquals("加和操作出现错误!!!",6, sum);
	    }
	
	    @Test
	    public void testPrint(){
	        Main1 m = new Main1();
	        m.print();
	    }
	}
C. 运行方式
  1. 在单个测试方法代码内右键可以找到运行单个测试方法的按钮,点击运行单个测试方法。如图所示。可以只运行testAdd()测试方法。
    在这里插入图片描述
  2. 在方法体外部,测试类中,右键可以执行全部测试方法。
    在这里插入图片描述
  3. 如果使用IDEA可以点击这些运行按钮,进行运行单个方法或者全体方法。
    在这里插入图片描述
    d. 运行结果
    在这里插入图片描述
4.JUnit中的除@Test之外的其他注解

在这里插入图片描述
具体使用:
具体含义可以查看上图,before与after注解主要为了测试时方便初始化和释放资源。

package com.junityanshi;

import org.junit.*;

public class TestMain1 {

    @Before
    public void before(){
        System.out.println("====before====");
    }

    @After
    public void After(){
        System.out.println("=====After=====");
    }

    @BeforeClass
    public static void beforeclass(){
        System.out.println("===beforeClass=====");
    }

    @AfterClass
    public static void afterclass(){
        System.out.println("===afterClass=====");
    }

    /*
      测试方法:
        1. 公开的,无参数,无返回值
        2. 测试方法需要使用@Test注解
     */
    @Test
    public void testAdd(){
        Main1 m = new Main1();
        int sum = m.add(1, 2, 3);
        // 进行预期正确性测试,使用断言关键字
        Assert.assertEquals("加和操作出现错误!!!",6, sum);
    }

    @Test
    public void testPrint(){
        Main1 m = new Main1();
        m.print();
    }
}

JUnit5.xx注解,名字变了但是功能没变。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山风wind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值