单元测试_JUnit常用单元测试注解介绍及代码演示 1

简介: 单元测试_JUnit常用单元测试注解介绍及代码演示

JUnit常用单元测试注解介绍及代码演示

 

by:授客 QQ:1033553122

1.测试环境 1

2.基础概念 1

3.常用Annotation 1

4.运行环境配置 3

maven配置 3

Eclipse maven运行环境配置 4

更新项目 5

5.单元测试实践 7

被测类BinarySearch 7

测试类BinarySearchTest 8

被测类Caculator 11

测试类CaculatorTest 12

测试套件类RunAllTestClass 13

运行单元测试 13

运行结果展示 16

 

1. 测试环境

Win7

 

eclipse-java-oxygen-3a-win32-x86_64.zip

 

apache-maven-3.5.4-bin.zip

https://maven.apache.org/download.cgi

https://pan.baidu.com/s/1OUNC0kZNduXJJLbpw76GZA

 

 

2. 基础概念

测试方法 :用@Test注解修饰的一些类方法。

测试类:包含一个或多个测试方法的java类;

测试套件:用@RunWith(Suite.class) 及@SuiteClasses注解的;font-size:10.5000pt;mso-font-kerning:0.0000pt;">一个或多个测试类

 

 

3. 常用Annotation

 

@RunWith  修饰测试类,用于修改运行器,如果不指定@RunWith则使用默认运行器。当测试类被@RunWith注解修饰时,或者类继承了一个被该注解修饰的类,JUnit将会使用这个注解所指明的运行器来运行单元测试,而不使用JUnit默认的运行器。

 

常见的运行器有:

@RunWith(JUnit4.class)  junit4的默认运行器

 

@RunWith(SpringRunner.class)  集成了spring的一些功能的运行器

 

@RunWith(Suite.class)  配合@SuiteClasses使用,用于执行测试套件的运行器  

 

@RunWith(Parameterized.class)   参数化运行器,配合@Parameters使用,参数化运行单元测试,需要在被修饰的测试类中的,提供数据的方法上加上一个@Parameters注解,例如,注意,这个提供数据的方法必须是静态的(static),并且返回一个集合(Collection)

 

我们可以为@Parameters 提供一个“名称”,以便更清晰的标记每个测试方法在每次运行时所使用的参数

 

“名称”可以包含占位符,该占位符在运行时将会被替换。

·{index}: 当前参数的索引

·{0}, {1}, …: 第一个参数,第二个参数等对应的参数值。

 

 

 

@Test  注解将一个普通方法修饰为一个测试方法,可选参数 timeout、expected,如下:

@Test(timeout = 1000)  设置被修饰的测试方法在预期时间(例中为 1000毫秒)内执行完成,否则测试失败;

 

@Test(expected = Exception.class)设置被修饰的测试方法应该抛出的预期异常,异常类型为:Exception.class,如果测试方法没有抛出预期的异常,则测试失败, 例如 @Test(expected = NullPointException.class)

 

注意:测试方法必须是public void,即公共、无返回

 

参考链接:https://www.cnblogs.com/mengdd/archive/2013/04/13/3019278.html

 

 

 

@BeforeClass  注解用于修饰测试类中的非测试方法,该方法将在其所属测试类中的所有测试方法被执行前运行,且只运行一次,可用于做一些测试基础准备,比如数据库连接,读取文件等。

 

注意:@BeforeClass修饰的方法必须是被public static void 修饰的方法,即公开、静态、无返回

 

 

 

@AfterClass  同@BeforeClass相反,注解用于修饰测试类中的非测试方法,该方法将在其所属测试类中所有测试方法执行完成后被运行,且只运行一次,可用于做一些测试后续操作,比如断开数据库连接,关闭文件等。

 

注意:@AfterClass修饰的方法必须是被public static void 修饰的方法,即公开、静态、无返回

 

 

 

@Before 注解用于修饰测试类中的非测试方法, 该方法会在其所属测试类中的每一个测试方法运行前运行一次

 

与@BeforeClass的区别在于,@Before不止运行一次,它会在每个测试方法运行之前都运行一次。主要用于为单个测试方法做一些基础的测试准备工作。

 

注意:@Before修饰的方法必须是被public void 修饰的方法,即公开、无返回,但不能是被static修饰的

 

 

 

@After:用于修饰测试类中的非测试方法, 同@Before相反,该方法会在其所属测试类中的每一个测试方法执行完后都运行一次

 

注意:@After修饰的方法必须是被public void 修饰的方法,即公开、无返回,但不能是被static修饰的

 

 

 

@ignore    注释掉一个测试方法或一个类,被注释的方法或类,不会被执行;

 

 

 

4. 运行环境配置

maven配置

确保安装了java jdk并正确设置了JAVA_HOME

下载bin.zip压缩包,解压到目标路径(例中 D:\Program Files\apache-maven-3.5.4\

),设置MAVEN_HOME及Path环境变量,如下

 


 

 

cmd输入mvn -v测试

 


 

 

Eclipse maven运行环境配置

如图,Window - Preferences - Maven -User Settings,Browse指定maven配置文件所在路径

 


 

更新项目

为了解决项目jar包依赖之类的问题,更新项目,右键项目根目录 - Maven - Update Project

 



 

 

如下图,默认已经选中了工程项目,默认选项配置的基础上,勾选上“Force Update of Snapshots/Releases”,OK提交

 

 

目录
相关文章
|
1月前
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
223 0
|
2月前
|
安全 Java 测试技术
Java 项目实战中现代技术栈下代码实现与测试调试的完整流程
本文介绍基于Java 17和Spring技术栈的现代化项目开发实践。项目采用Gradle构建工具,实现模块化DDD分层架构,结合Spring WebFlux开发响应式API,并应用Record、Sealed Class等新特性。测试策略涵盖JUnit单元测试和Testcontainers集成测试,通过JFR和OpenTelemetry实现性能监控。部署阶段采用Docker容器化和Kubernetes编排,同时展示异步处理和反应式编程的性能优化。整套方案体现了现代Java开发的最佳实践,包括代码实现、测试调试
118 0
|
5月前
|
存储 jenkins 测试技术
Apipost自动化测试:零代码!3步搞定!
传统手动测试耗时低效且易遗漏,全球Top 10科技公司中90%已转向自动化测试。Apipost无需代码,三步实现全流程自动化测试,支持小白快速上手。功能涵盖接口测试、性能压测与数据驱动,并提供动态数据提取、CICD集成等优势,助力高效测试全场景覆盖。通过拖拽编排、一键CLI生成,无缝对接Jenkins、GitHub Actions,提升测试效率与准确性。
391 11
|
5月前
|
人工智能 自然语言处理 测试技术
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动
Codex CLI是OpenAI推出的轻量级AI编程智能体,基于自然语言指令帮助开发者高效生成代码、执行文件操作和进行版本控制,支持代码生成、重构、测试及数据库迁移等功能。
773 0
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动
|
7月前
|
人工智能 自然语言处理 测试技术
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
Potpie.ai 是一个基于 AI 技术的开源平台,能够为代码库创建定制化的工程代理,自动化代码分析、测试和开发任务。
560 19
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
|
6月前
|
Java 测试技术 Android开发
课时148:junit测试工具
课时148介绍了JUnit测试工具的使用,包括定义、配置和编写测试程序。JUnit是流行的用例测试工具,用于确保代码稳定性。
100 0
|
3月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
701 23
|
8月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
615 24
|
5月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
216 2