JUnit单元测试(1)


单元测试

  • 单元测试是针对最小功能单元编写的测试代码
  • Java程序最小的功能单元是方法
  • 单元测试就是针对单个Java方法的测试

为什么需要单元测试

首先了解一下测试驱动开发:测试驱动开发(Test Driven Development)简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。
在这里插入图片描述

传统测试:
假如我们现在需要测试一个计算类Calculate,那么就需要写一个这样的测试代码。

Calculate

public class Calculate {
    public int plus(int a, int b){
        return a+b;
    }
}

CalculateTest

public class CalculateTest {
    public static void main(String[] args) {
        Calculate calculate = new Calculate();
        if(calculate.plus(1,2)==3){
            System.out.println("success");
        }else {
            System.out.println("error");
        }
    }
}

运行结果:success
虽然可以测试出结果,但是不难看出,当类方法多的时候,编写测试类的就会很麻烦,工作量很大,并且要测试多个类的时候,由于只有一个main方法,此时测试类的逻辑就会很混乱,在开发时不能专注于测试的编写。单元测试应运而生。其中运用最广泛的就是JUnit。

单元测试的优势:

  • 确保单个方法运行正常
  • 如果修改了方法代码,只需要确保对应的单元测试通过
  • 测试代码本身就是示例代码
  • 可以自动化运行所有测试并获得报告

JUnit

JUnit是一个开源的Java语言的单元测试框架

特点:

  1. 可以使用断言测试期望结果
  2. 方便组织和运行测试
  3. 方便查看结果
  4. 可以集成到IDE或Maven

组成

项目解释
TestCase表示一个测试
TestSuite表示一组测试,包含一组TestCase
TestFixture表示测试环境
TestResult测试结果
TestRunner运行测试
TestListener监听测试过程,收集数据
Assert断言,用于判断结果是否正确

实践

在这里插入图片描述
一般来说,建立两个文件夹,一个为main文件夹,一个是test文件夹,main文件夹中用来写业务代码,test中写测试代码,建立好两个文件夹后,默认是普通文件夹,此时需要右键文件夹将他修改为源码或是测试文件夹
在这里插入图片描述
之后可以使用jar包导入Junit或者在项目文件夹中添加pom.xml文件使用maven导入

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>JUnit_test</groupId>
    <artifactId>JUnit_test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

将之前的测试类改写

import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class CalculateTest {

    @Test
    public void testPlus(){
        assertEquals(3,new Calculate().plus(1,2));
        assertEquals(4,new Calculate().plus(1,2));
    }
}

我们写了一组正确的断言和错误的断言,运行结果如下:
在这里插入图片描述
常见断言:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值