【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 中,我们可以使用注释将代码标记为测试代码,并且可以使用各种辅助工具和指令来执行测试并检查结果。

相关文章
|
1月前
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
236 0
|
6月前
|
缓存 监控 负载均衡
如何提升 API 性能:来自 Java 和测试开发者的优化建议
本文探讨了如何优化API响应时间,提升用户体验。通过缓存(如Redis/Memcached)、减少数据负载(REST过滤字段或GraphQL精确请求)、负载均衡(Nginx/AWS等工具)、数据压缩(Gzip/Brotli)、限流节流、监控性能(Apipost/New Relic等工具)、升级基础设施、减少第三方依赖、优化数据库查询及采用异步处理等方式,可显著提高API速度。快速响应的API不仅让用户满意,还能增强应用整体性能。
|
2月前
|
安全 Java 测试技术
Java 项目实战中现代技术栈下代码实现与测试调试的完整流程
本文介绍基于Java 17和Spring技术栈的现代化项目开发实践。项目采用Gradle构建工具,实现模块化DDD分层架构,结合Spring WebFlux开发响应式API,并应用Record、Sealed Class等新特性。测试策略涵盖JUnit单元测试和Testcontainers集成测试,通过JFR和OpenTelemetry实现性能监控。部署阶段采用Docker容器化和Kubernetes编排,同时展示异步处理和反应式编程的性能优化。整套方案体现了现代Java开发的最佳实践,包括代码实现、测试调试
122 0
|
2月前
|
人工智能 Java 测试技术
Java or Python?测试开发工程师如何选择合适的编程语言?
测试工程师如何选择编程语言?Java 还是 Python?多位资深专家分享建议:Python 入门简单、开发效率高,适合新手及自动化测试;Java 生态成熟,适合大型项目和平台开发。建议结合公司技术栈、个人基础及发展方向选择。长远来看,两者兼通更佳,同时关注 Go 等新兴语言。快速学习与实践才是关键。
|
11月前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
146 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
10月前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
1633 2
|
11月前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
189 5
|
11月前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
352 1
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
208 6
|
11月前
|
分布式计算 Java 大数据
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
121 0

热门文章

最新文章