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

相关文章
|
4天前
|
Java
PTA帅到没朋友(Java语言)+测试点
PTA帅到没朋友(Java语言)+测试点
11 1
|
4天前
|
Java 测试技术 数据库
【JAVA基础篇教学】第十七篇:Java单元测试
【JAVA基础篇教学】第十七篇:Java单元测试
|
4天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(三十九)-java+ selenium自动化测试-JavaScript的调用执行-上篇(详解教程)
【5月更文挑战第3天】本文介绍了如何在Web自动化测试中使用JavaScript执行器(JavascriptExecutor)来完成Selenium API无法处理的任务。首先,需要将WebDriver转换为JavascriptExecutor对象,然后通过executeScript方法执行JavaScript代码。示例用法包括设置JS代码字符串并调用executeScript。文章提供了两个实战场景:一是当时间插件限制输入时,用JS去除元素的readonly属性;二是处理需滚动才能显示的元素,利用JS滚动页面。还给出了一个滚动到底部的代码示例,并提供了详细步骤和解释。
32 10
|
1天前
|
存储 JavaScript Java
《手把手教你》系列技巧篇(四十七)-java+ selenium自动化测试-判断元素是否显示(详解教程)
【5月更文挑战第11天】WebDriver 的 `isDisplayed()` 方法用于检查页面元素是否可见,如果元素存在于DOM中且可视,返回`true`,否则返回`false`。在自动化测试中,这个方法常用于验证元素是否真正显示在页面上。示例代码展示了如何使用 `isDisplayed()` 判断百度登录页面的特定错误提示文字是否出现。
11 1
|
2天前
|
JavaScript Java 测试技术
《手把手教你》系列技巧篇(四十六)-java+ selenium自动化测试-web页面定位toast-下篇(详解教程)
【5月更文挑战第10天】本文介绍了使用Java和Selenium进行Web自动化测试的实践,以安居客网站为例。最后,提到了在浏览器开发者工具中调试和观察页面元素的方法。
12 2
|
3天前
|
Web App开发 JavaScript 测试技术
《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)
【5月更文挑战第9天】本文介绍了在Appium中处理App自动化测试中遇到的Toast元素定位的方法。Toast在Web UI测试中也常见,通常作为轻量级反馈短暂显示。文章提供了两种定位Toast元素的技巧.
11 0
|
3天前
|
Java 测试技术
Java一分钟之-单元测试:JUnit与TestNG
【5月更文挑战第16天】本文介绍了Java常用的单元测试框架JUnit和TestNG,JUnit以其简洁注解受到青睐,而TestNG则提供更高级功能如参数化测试。常见问题包括测试未执行、断言失败等,解决办法包括检查项目配置、调整测试顺序。注意保持测试简单独立,确保高覆盖率。选择合适的框架可提升代码质量。
10 0
|
4天前
|
IDE Java 测试技术
Java测试三两事
Java测试三两事
10 1
|
4天前
|
Web App开发 缓存 前端开发
《手把手教你》系列技巧篇(四十四)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-下篇(详解教程)
【5月更文挑战第8天】这篇文档介绍了如何在IE、Chrome和Firefox浏览器中处理不信任证书的问题。作者北京-宏哥分享了如何通过编程方式跳过浏览器的证书警告,直接访问不受信任的HTTPS网站。文章分为几个部分,首先简要介绍了问题背景,然后详细讲解了在Chrome浏览器中的两种方法,包括代码设计和运行效果,并给出了其他浏览器的相关信息和参考资料。最后,作者总结了处理此类问题的一些通用技巧。
16 2
|
4天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(四十三)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-上篇(详解教程)
【5月更文挑战第7天】本文介绍了如何在Java+Selenium自动化测试中处理浏览器对不信任证书的处理方法,特别是针对IE、Chrome和Firefox浏览器。在某些情况下,访问HTTPS网站时会遇到证书不可信的警告,但可以通过编程方式跳过这些警告。
13 1