详解Java单元测试之Junit框架使用教程

 更新时间:2022年05月26日 09:01:06   作者:遇安.112  
单元测试就是针对最小的功能单元编写测试代码,Junit是使用Java语言实现的单元测试框架,它是开源的,Java开发者都应当学习并使用Junit编写单元测试。本文就来讲讲Junit框架的使用教程,需要的可以参考一下

单元测试

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

目前测试方法是怎么进行的,存在什么问题?

1、只有一个main方法,如果一个方法的测试失败了,其他方法测试会受到影响

2、无法得到测试的结果报告,需要程序员自己去观察测试是否成功

3、无法实现自动化测试

Junit单元测试框架

1、Junit是使用Java语言实现的单元测试框架,它是开源的,Java开发者都应当学习并使用Junit编写单元测试

2、此外,几乎所有的IDE工具都集成了Junit,这样我们就可以直接在IDE中编写并运行Junit测试,Junit目前最新版本是5

Junit优点

1、Junit可以灵活的选择执行哪些测试方法,可以一键执行全部测试方法

2、Junit可以生成全部方法的测试报告

3、Junit可以生成测试报告,如果测试良好则是绿色,如果测试失败则是红色

4、单元测试中的某个方法测试失败了,不会影响其他测试方法的测试

Junit单元测试是做什么的?

测试类中的方法的正确性的

单元测试快速入门

需求:使用单元测试进行业务方法预期结果、正确性测试的快速入门

分析:

1、将Junit的jar包导入到项目中

IDEA通常整合好了Junit框架,一般不需要导入

如果IDEA没有整合好,需要自己手工导入两个Junit的jar包到模块

2、编写测试方法:该测试方法必须是公共的无参数无返回值的非静态方法

3、在测试方法上使用@Test注解:标注该方法是一个测试方法

4、在测试方法中完成被测试方法的预期正确性测试

5、选中测试方法,选择Junit运行,如果测试良好则是绿色,如果测试失败,则是红色

业务类

//业务方法
public class 单元测试_Junit框架 {
    public String loginName(String loginName,String passWord){
        if("YAn".equals(loginName)&&"123456".equals(passWord)){
            return "登录成功";
        }else{
            return "登录失败,密码或者用户名错误";
        }
    }
    public void selectName(){
        //这里我们故意写一个bug,方便测试
        System.out.println(10/0);
        System.out.println("查询成功!");
    }
}

测试方法

import org.junit.Assert;
import org.junit.Test;
 
//测试方法
public class 单元测试_Junit框架text {
    /*
    测试方法注意点:
    1、必须是公开的、无参、无返回值的方法
    2、测试方法必须使用@Test注解标记
     */
    @Test
    public void test(){
        单元测试_Junit框架 t=new 单元测试_Junit框架();
        String ts=t.loginName("YAn","123456");
 
        //进行预期结果的正确性测试:断言
        Assert.assertEquals("您的业务功能可能出现了问题","登录成功",ts);
    }
    @Test
    public void selectName(){
        单元测试_Junit框架 ts=new 单元测试_Junit框架();
        ts.selectName();
    }
}

两个测试方法运行后结果:

如果您的项目被人动了,和你的预期结果不一样,则是这样的:

单元测试常用注解(博主这里用的是版本4):

业务类修改一点点,让测试方法都没有bug

//业务方法
public class 单元测试_Junit框架 {
    public String loginName(String loginName,String passWord){
        if("YAn".equals(loginName)&&"123456".equals(passWord)){
            return "登录成功";
        }else{
            return "登录失败,密码或者用户名错误";
        }
    }
    public void selectName(){
        System.out.println(10/2);
        System.out.println("查询成功!");
    }
}

测试方法

import org.junit.*;
 
//测试方法
public class 单元测试_Junit框架text {
//修饰实例方法的
    @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 test(){
        单元测试_Junit框架 t=new 单元测试_Junit框架();
        String ts=t.loginName("YAn","123456");
 
        //进行预期结果的正确性测试:断言
        Assert.assertEquals("您的业务功能可能出现了问题","登录成功",ts);
    }
    @Test
    public void selectName(){
        单元测试_Junit框架 ts=new 单元测试_Junit框架();
        ts.selectName();
    }
}

运行结果:

可以看出最先运行的是BeforeClass测试方法,最后结束的是AfterClass测试方法。

先执行Before方法,然后运行里面的测试内容,再运行After方法。

开始执行的方法:初始化资源

执行完之后的方法:释放资源

以上就是详解Java单元测试之Junit框架使用教程的详细内容,更多关于Java Junit框架的资料请关注脚本之家其它相关文章!

相关文章

  • Java从零编写吃货联盟订餐系统全程讲解

    Java从零编写吃货联盟订餐系统全程讲解

    这篇文章主要介绍了Java订餐系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-12-12
  • java语言基础之标识符和命名规则详解

    java语言基础之标识符和命名规则详解

    这篇文章主要给大家介绍了关于java语言基础之标识符和命名规则的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Java编译和解释执行对比及原理解析

    Java编译和解释执行对比及原理解析

    这篇文章主要介绍了Java编译和解释执行对比及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Java 删除文件及文件夹删除不了的解决

    Java 删除文件及文件夹删除不了的解决

    这篇文章主要介绍了Java 删除文件及文件夹删除不了的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Spring+SpringMVC+MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析

    Spring+SpringMVC+MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析

    这篇文章主要介绍了Spring+SpringMVC+MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析,需要的朋友可以参考下
    2017-05-05
  • 解决使用IDEA时跳转到.class的问题

    解决使用IDEA时跳转到.class的问题

    这篇文章主要介绍了解决使用IDEA时跳转到.class的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Spring Boot 启动加载数据 CommandLineRunner的使用

    Spring Boot 启动加载数据 CommandLineRunner的使用

    本篇文章主要介绍了Spring Boot 启动加载数据 CommandLineRunner的使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • Java安全 ysoserial CommonsCollections2示例分析

    Java安全 ysoserial CommonsCollections2示例分析

    这篇文章主要为大家介绍了Java安全 ysoserial CommonsCollections2示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 使用Cloud Toolkit在IDEA中极速创建dubbo工程

    使用Cloud Toolkit在IDEA中极速创建dubbo工程

    这篇文章主要介绍了使用Cloud Toolkit在IDEA中极速创建dubbo工程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • SpringBoot参数验证10个技巧值得收藏

    SpringBoot参数验证10个技巧值得收藏

    Spring Boot提供了内置的验证注解,可以帮助简单、快速地对输入字段进行验证,例如检查 null 或空字段、强制执行长度限制、使用正则表达式验证模式以及验证电子邮件地址,那么在Spring Boot应用中如何做好参数校验工作呢,本文提供了10个小技巧感兴趣的朋友一起看看吧
    2023-08-08

最新评论