【Java】Java(四十七):单元测试

简介: 1. 概述JUnit是一个 Java 编程语言的单元测试工具。JUnit 是一个非常重要的测试工具2. 特点JUnit是一个开放源代码的测试工具。提供注解来识别测试方法。JUnit测试可以让你编写代码更快,并能提高质量。JUnit优雅简洁。没那么复杂,花费时间较少。JUnit在一个条中显示进度。如果运行良好则是绿色;如果运行失败,则变成红色。

1. 概述

JUnit是一个 Java 编程语言的单元测试工具。JUnit 是一个非常重要的测试工具


2. 特点

  • JUnit是一个开放源代码的测试工具。
  • 提供注解来识别测试方法。
  • JUnit测试可以让你编写代码更快,并能提高质量。
  • JUnit优雅简洁。没那么复杂,花费时间较少。
  • JUnit在一个条中显示进度。如果运行良好则是绿色;如果运行失败,则变成红色。

3. 使用步骤

  • 使用步骤
  1. 将junit的jar包导入到工程中 junit-4.9.jar
  2. 编写测试方法该测试方法必须是公共的无参数无返回值的非静态方法
  3. 在测试方法上使用@Test注解标注该方法是一个测试方法
  4. 选中测试方法右键通过junit运行该方法

代码示例

public class JunitDemo1 {
  @Test
  public void add() {
    System.out.println(2 / 0);
    int a = 10;
    int b = 20;
    int sum = a + b;
    System.out.println(sum);
  }
}

4. 相关注解

  • 注解说明

26d37ec3091a49a2b3029c36a4960ad1.png

代码示例

public class JunitDemo2 {
  @Before
  public void before() {
    // 在执行测试代码之前执行,一般用于初始化操作
    System.out.println("before");
  }
  @Test
  public void test() {
    // 要执行的测试代码
    System.out.println("test");
  }
  @After
  public void after() {
    // 在执行测试代码之后执行,一般用于释放资源
    System.out.println("after");
  }
}

5. 疑惑: 有了main函数 为啥还要 单元测试


虽然有了 main 函数能够运行程序和调试代码,但是单元测试比 main 函数更加专用于验证代码的正确性,并且在软件开发项目中非常重要。以下是几个理由:

更早地发现错误:单元测试通常是在开发期间编写的,在程序还没有完成时就可以进行,这样可以更早地发现错误。如果仅使用 main 函数调试完整程序,则需要等整个功能模块或应用程序开发完成后才能发现错误或缺陷,这会增加诊断和修复问题的成本。


提高代码质量:编写单元测试强制代码具有良好的设计,易于测试和维护。通过测试每个函数或方法和模块,可以极大地提高代码质量和可读性。


持续集成:单元测试也是实现持续集成的关键部分。单元测试可以在构建时自动运行,以确定新代码是否引入了错误并导致其他测试失败。


重构:重构代码时,最好首先运行自动化单元测试套件,以确保重构代码不会破坏原有代码的功能。


单元测试是一种有效的方法,可以确保您的代码质量并及早发现潜在的问题。即使有了 main 函数,单元测试也是非常必要且不可或缺的,以便提供可靠的保障。

6. 后记


java 中的单元测试是一种软件测试方法,用于对代码中的最小测试单元(即功能模块、类或方法)进行测试和验证。单元测试通常是由程序员自己编写的,并且是在开发过程中进行的。

Java 中有许多单元测试框架可供选择,其中最常用的是 JUnit。JUnit 是一个 Java 编程语言的单元测试框架,用于编写和运行针对 Java 代码的自动化测试。在 JUnit 中,我们可以使用注释将代码标记为测试代码,并且可以使用各种辅助工具和指令来执行测试并检查结果。

相关文章
|
13天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
18 2
|
20天前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
21 5
|
1月前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
37 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
25天前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
32 1
|
1月前
|
分布式计算 Java 大数据
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
31 0
|
2月前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
71 6
|
1月前
|
算法 Java 测试技术
数据结构 —— Java自定义代码实现顺序表,包含测试用例以及ArrayList的使用以及相关算法题
文章详细介绍了如何用Java自定义实现一个顺序表类,包括插入、删除、获取数据元素、求数据个数等功能,并对顺序表进行了测试,最后还提及了Java中自带的顺序表实现类ArrayList。
18 0
|
3月前
|
IDE Java 测试技术
揭秘Java高效编程:测试与调试实战策略,让你代码质量飞跃,职场竞争力飙升!
【8月更文挑战第30天】在软件开发中,测试与调试对确保代码质量至关重要。本文通过对比单元测试、集成测试、调试技巧及静态代码分析,探讨了多种实用的Java测试与调试策略。JUnit和Mockito分别用于单元测试与集成测试,有助于提前发现错误并提高代码可维护性;Eclipse和IntelliJ IDEA内置调试器则能快速定位问题;Checkstyle和PMD等工具则通过静态代码分析发现潜在问题。综合运用这些策略,可显著提升代码质量,为项目成功打下坚实基础。
59 2
|
3月前
|
XML Java 测试技术
Selenium WebDriver自动化测试(基础篇):不得不掌握的Java基础
关于Selenium WebDriver自动化测试的Java基础篇,涵盖了Java的变量、数据类型、字符串操作、运算符、流程控制、面向对象编程、关键字用法、权限修饰符、异常处理和IO流等基础知识点,为进行自动化测试提供了必要的Java语言基础。
99 1
|
3月前
|
Java 测试技术 API
Java 新手入门:Java单元测试利器,Mock详解
Java 新手入门:Java单元测试利器,Mock详解
194 1