欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java——JUnit单元测试的使用

程序员文章站 2022-06-05 11:28:46
...

一、概述

        Junit是java 语言编写的第三方单元测试框架(工具类)

二、作用

        用来“单元测试”,针对某个普通方法,可以像main方法一样独立运行,它专门用于测试某个方法

三、使用步骤

       1.下载JUnit的jar包
        2.拷贝JUnit的jar包到模块下的lib文件夹下,并添加到classpath中
        3.编写测试方法
        4.在测试方法上写一个注解:@Test

        执行测试方法:

                1.选中方法名称 --> 右键 ---> 选中执行:只执行选中的测试方法
                2.选中类名    --> 右键 ---> 选中执行:执行该类中所有的测试方法
                3.选中模块    --> 右键 ---> 选中执行all test:执行该模块下所有的测试方法

        如何查看测试结果:

                1.红色:表示测试失败

                2.绿色:表示测试通过

四、代码演示以及注意事项

public class Test {
    public static void main (String[] args) {

    }

    @org.junit.Test
    public void show1(){
        System.out.println("show1方法正在执行");
    }

    @org.junit.Test
    public void show2(){
        System.out.println("show2方法正在执行");
    }
}

        注意事项:

                1.测试方法必须使用public权限修饰,Method show() should be public
                2.测试方法不能有返回值,返回值类型只能写void Method show1() should be void
                3.测试方法不能有参数,必须是无参,Method show should have no parameters
                4.测试方法,声明一定需要使用@Test注解,否则不识别

五、Junit单元测试的其他注解

        - @Before:用来修饰方法,该方法会在每一个测试方法之前先执行一次
        - @After:用来修饰方法,该方法会在每一个测试方法之后再执行一次
        - @BeforeClass:用来修饰静态方法,该方法会在所有测试方法之前执行一次,且仅仅只执行一次
        - @AfterClass:用来修静态方法,该方法会再测试方法之后执行一次,且仅仅只执行一次

        代码演示:

public class Test {
    public static void main (String[] args) {


    }

    @org.junit.Test
    public void one(){
        System.out.println("one方法执行了");
    }
    @AfterClass
    public static void two(){
        System.out.println("two方法执行了");
    }
    @org.junit.Test
    public void three(){
        System.out.println("three方法执行了");
    }
    @org.junit.Test
    public void four(){
        System.out.println("four方法执行了");
    }
    @org.junit.Test
    public void five(){
        System.out.println("five方法执行了");
    }

}

        这里我们运行five方法,two方法会在five测试方法之后再执行一次,简单的演示一个,演示结果较多,只是示范一下,可以自己操作一下,特别简单。

Java——JUnit单元测试的使用

六、JUnit断言

        概述:

                预先判断某个条件一定成立,如果条件不成立,则直接报错
        关键字:

                Assert类中的assertEquals()方法

        需求代码演示:

public class Test {
    public static void main (String[] args) {

    }

    @org.junit.Test
    public void show(){
        int sum = sum(10, 20);

        /*
        *   那么,我断言,sum的值一定是20,返回的是void
        *       - public static void assertEquals(long expected, long actual)
        *           第一个参数:预测的值
        *           第二个参数:实际的值
        *           如果结果正确,程序继续执行,或者测试成功
        *           如果结果失败,抛出异常:java.lang.AssertionError,测试失败
        * */

        Assert.assertEquals(20,sum);    // 断言成功,继续执行,断言失败,抛异常
        System.out.println("sum的值为:" + sum);
    }

    // 虽然代码没有问题,但是逻辑错误了看方法以为是加法,其实逻辑里写的是乘法
    public int sum(int num1,int num2){
        return num1 * num2;
    }
}