Junit使用指南

简介: Junit单元测试

概念

测试分类:

  • 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
  • 白盒测试:需要写代码的。关注程序具体的执行流程。

JUnit 是一个 Java 编程语言的单元测试框架。JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。

使用

引入坐标

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.13.1</version>
</dependency>

测试步骤

  1. 定义一个测试类(测试用例)
  2. 命名建议:

    • 测试类名:被测试的类名Test CalculatorTest
    • 包名:xxx.xxx.xx.test com.zjq.test
  3. 定义测试方法:可以独立运行
  4. 建议:

    • 方法名:test测试的方法名 testAdd()
    • 返回值:void
    • 参数列表:空参
  5. 给方法加 @Test

案例:

    /**
     * 测试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);
    }

判定结果

红色:失败
绿色:成功
一般我们会使用断言操作来处理结果

org.junit.Assert常用方法

assertEquals ( [String message] , expected , actual )

参数说明:

  • message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
  • expected是期望值,通常都是用户指定的内容。
  • actual是被测试的代码返回的实际值。

案例:

Assert.assertEquals("比对失败,请检查","1","1");
assertEquals( [String message] , expected , actual , tolerance )

参数说明:

  • message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
  • expected是期望值,通常都是用户指定的内容。
  • actual是被测试的代码返回的实际值。
  • tolerance是误差参数,参加比较的两个浮点数在这个误差之内则会被认为是 相等的。

案例:

Assert.assertEquals ("超过误差,请检查",6.6,10.0/2.0,0.5);
assertTrue ( [String message] ,Boolean condition)

参数说明:

  • message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
  • condition是待验证的布尔型值。

该断言用来验证给定的布尔型值是否为真,假如结果为假,则验证失败。

assertFalse ( [String message] , Boolean condition )

该断言用来验证给定的布尔型值是否为假,假如结果为真,则验证失败。

Assert.assertTrue("假的!假的!",1==2); 
Assert.assertFalse("false",2==1); 
assertNull ( [String message] , Object object )

参数说明:
message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
object是待验证的对象。
该断言用来验证给定的对象是否为null,假如不为null,则验证失败。相应地,还存在能够验证非null的断言:

assertNotNull([String message],Object object)

该断言用来验证给定的对象是否为非null,假如为null,则验证失败。
案例:

Assert.assertNull("null",null); 
Assert.assertNotNull("not null",new String()); 

扩展

@Before:

  • 修饰的方法会在测试方法之前被自动执行
    /**
     * 初始化方法:
     *  用于资源申请,所有测试方法在执行之前都会先执行该方法
     */
    @Before
    public void init(){
        System.out.println("init...");
    }

@After:

  • 修饰的方法会在测试方法执行之后自动被执行
    /**
     * 释放资源方法:
     *  在所有测试方法执行完后,都会自动执行该方法
     */
    @After
    public void close(){
        System.out.println("close...");
    }
相关文章
|
机器学习/深度学习 并行计算 计算机视觉
YOLOv5入门实践(5)——从零开始,手把手教你训练自己的目标检测模型(包含pyqt5界面)
YOLOv5入门实践(5)——从零开始,手把手教你训练自己的目标检测模型(包含pyqt5界面)
10426 1
YOLOv5入门实践(5)——从零开始,手把手教你训练自己的目标检测模型(包含pyqt5界面)
|
人工智能 搜索推荐 算法
啥是AI,认识身边的AI
人工智能,或AI,悄然融入我们的日常生活,成为不可或缺的一部分。在智能手机中,语音助手如Siri、小爱同学等,不仅帮我们完成日常操作,还能提供陪伴。AI还化身时尚摄影师,美化我们的照片;通过个性化推荐,在各类应用中呈现我们感兴趣的内容。智能家居中,智能音箱控制家电,安全摄像头守卫家庭,智能冰箱推荐健康食谱。在线上,AI优化购物体验,定制化信息流让我们享受个性化社交。在医疗领域,AI辅助诊断疾病,智能手环监测健康。出行时,AI规划最佳路线,自动驾驶预示未来。教育娱乐方面,AI定制学习计划,创造沉浸式游戏体验。AI已成为我们贴心的生活助手。
|
分布式计算 Java API
Flink教程(04)- Flink入门案例
Flink教程(04)- Flink入门案例
356 0
|
11月前
|
NoSQL MongoDB PHP
MongoDB PHP
10月更文挑战第19天
98 2
MongoDB PHP
|
Java 测试技术 持续交付
Springboot中JUNIT5单元测试+Mockito详解
Springboot中JUNIT5单元测试+Mockito详解
1484 1
|
canal SQL 关系型数据库
Canal入门
Canal入门
684 1
|
缓存 关系型数据库 MySQL
云原生数据仓库使用问题之如何查询表内数据分布的情况
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
存储 人工智能 分布式计算
动态规划从理论到实践-深入理解贪心/分治/回溯/动态规划的算法思想
动态规划从理论到实践-深入理解贪心/分治/回溯/动态规划的算法思想
489 0
|
安全 关系型数据库 MySQL
MHA高可用配置及故障切换
MHA高可用配置及故障切换
269 0
|
网络协议 Ubuntu Linux
闲置iPad Pro打造真正的生产力工具!使用vscode编程写代码
闲置iPad Pro打造真正的生产力工具!使用vscode编程写代码
907 0