Java Junit单元测试(基础篇)

发布时间 2023-11-14 22:27:53作者: 是小言

什么是单元测试? 

单元测试就是针对最小的功能单元编写测试代码,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、单元测试中的某个方法测试失败了,不会影响其他测试方法的测试

单元测试快速入门 :

1、将Junit的jar包导入到项目中,idea通常整合好了Junit框架,一般不需要导入;

如果IDEA没有整合好,需要自己手动导入Junit的jar包到模块,手动下载并添加JUnit库:

  • 访问JUnit的官方网站:JUnit 5。
  • 下载JUnit的JAR文件(通常是junit-platform-console-standalone.jar)。
  • 将下载的JAR文件添加到您的项目中的类路径中

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

import org.junit.Test;
 
public class Tests {
    public void test() {
        System.out.println("测试1");
    }
}

3、常见Junit注解

@test

@Test注解用于标识测试方法。JUnit将执行所有带有@Test注解的方法,并报告测试结果

import org.junit.Test;
 
public class Tests {
    @Test
    public void test() {
        System.out.println("测试1");
    }
}
@Before@After
@Before@After注解用于在测试方法之前和之后执行一些设置或清理工作。这对于准备测试环境和资源的初始化非常有用
@Before
public void setUp() {
    // 执行测试前的准备工作
}
 
@After
public void tearDown() {
    // 执行测试后的清理工作
}

@BeforeEach@AfterEach

@BeforeEach@AfterEach注解与@Before@After类似,但它们在每个测试方法之前和之后执行,而不是在测试类级别执行

@BeforeEach
public void init() {
    // 在每个测试方法前执行初始化
}
 
@AfterEach
public void cleanup() {
    // 在每个测试方法后执行清理工作
}
@Disabled

@Disabled注解用于禁用测试方法。被标记为@Disabled的测试方法不会被执行

@Disabled
@Test
public void disabledTest() {
    // 这个测试方法被禁用
}