超详细的JUnit单元测试介绍

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

前言

本文为JUnit单元测试相关知识下边将对JUnit单元测试概念JUnit优点JUnit安装与使用JUnit运行流程与常用注解JUnit测试套件使用及参数化设置JUnit断言等进行详尽介绍~

📌博主主页´Code_Wang的主页
👉Java全栈学习路线可参考【Java全栈学习路线】最全的Java学习路线及知识清单Java自学方向指引内含最全Java全栈学习技术清单~
👉算法刷题路线可参考算法刷题路线总结与相关资料分享内含最详尽的算法刷题路线指南及相关资料分享~


目录

JUnit单元测试

一、JUnit单元测试

​单元测试又称模块测试属于白盒测试是开发者编写的一小段代码用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言一个单元测试是用于判断某个特定条件或者场景下某个特定函数的行为。

1️⃣什么是JUnit

  • JUnit是用于编写可复用测试集的简单框架是xUnit的一个子集。xUnit是一套基于测试驱动开发的测试框架有PythonUnit、CppUnit、JUnit等。
  • JUnit测试是程序员测试即所谓白盒测试因为程序员知道被测试的软件如何How完成功能和完成什么样What的功能。
  • 多数Java的开发环境都已经集成了JUnit作为单元测试的工具比如IDEAEclipse等等。

2️⃣JUnit优点

另外JUnit是在极限编程和重构refactor中被极力推荐使用的工具因为在实现自动单元测试的情况下可以大大的提高开发的效率但是实际上编写测试代码也是需要耗费很多的时间和精力的那么使用这个东西好处到底在哪里呢

极限编程
要求在编写代码之前先写测试这样可以强制你在写代码之前好好的思考代码方法的功能和逻辑否则编写的代码很不稳定那么你需要同时维护测试代码和实际代码这个工作量就会大大增加。因此在极限编程中基本过程是这样的构思-> 编写测试代码-> 编写代码-> 测试而且编写测试和编写代码都是增量式的写一点测一点在编写以后的代码中如果发现问题可以较快的追踪到问题的原因减小回归错误的纠错难度。

重构
其好处和极限编程中是类似的因为重构也是要求改一点测一点减少回归错误造成的时间消耗。

其他情况
我们在开发的时候使用JUnit写一些适当的测试也是有必要的因为一般我们也是需要编写测试的代码的可能原来不是使用的JUnit如果使用JUnit而且针对接口方法编写测试代码会减少以后的维护工作例如以后对方法内部的修改这个就是相当于重构的工作了。另外就是因为JUnit有断言功能如果测试结果不通过会告诉我们哪个测试不通过为什么而如果是像以前的一般做法是写一些测试代码看其输出结果然后再由自己来判断结果是否正确使用JUnit的好处就是这个结果是否正确的判断是它来完成的我们只需要看看它告诉我们结果是否正确就可以了在一般情况下会大大提高效率。

3️⃣为什么要用JUnit

  • 测试框架可以帮助我们对编写的程序进行有目的地测试帮助我们最大限度地避免代码中的bug以保证系统的正确性和稳定性。
  • 很多人对自己写的代码测试时就简单写main然后sysout输出控制台观察结果。这样非常枯燥繁琐不规范。缺点测试方法不能一起运行测试结果要程序猿自己观察才可以判断程序逻辑是否正确。JUnit的断言机制可以直接将我们的预期结果和程序运行的结果进行一个比对确保对结果的可预知性。

断言概述:

  • 编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设。
  • 可以将断言看作是异常处理的一种高级形式。
  • 断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。

4️⃣JUnit安装

  • JUnit官网http://JUnit.org/
  • JUnit的jar包下载https://github.com/JUnit-team/JUnit/wiki/Download-and-Install
  • 如果你安装的开发工具是eclipse这就很好办因为eclipse自带JUnit只是不同版本的eclipse把JUnit放在了不同的地方但是也很好找。
  • 如果你安装的开发工具是IDEA那么要么去下载jar包要么通过IDEA去安装插件

IDEA中JUnit安装步骤如下
1新建一个项目工程点击 文件File - 新建New - 项目Project我这里项目名使用 JunitProj点击完成

👉Java全栈学习路线可参考【Java全栈学习路线】最全的Java学习路线及知识清单Java自学方向指引内含最全Java全栈学习技术清单~
👉算法刷题路线可参考算法刷题路线总结与相关资料分享内含最详尽的算法刷题路线指南及相关资料分享~

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6