JUnit4注解基本介绍

JUnit5教程(2)_JUnit5测试生命周期及与JUnit4注解的不同 你好啊,我是大阳。 本文我们讨论JUnit5测试生命周期,以及JUnit5与JUnit4的不同之处。 1. 测试阶段的生命周期 通常,一个测试类包含多个测试方法。JUnit 以生命周期的形式管理每个测试方法的执行。 在注解的帮助下,测试用例的完整生命周期可以分为三个阶段: 设置:此阶段将测试基础设施配置到位。JUnit 提供类级别设置和方法级别设置。通常,像数据库连接这样的重对象是在类级别设置中创建的,而像测试对象这样的轻量对象是在方法级别设置的。 测试执行:在这个阶段,主要是测试执行和断言。执行结果将使 阅读详情

@After

If you allocate external resources in a Before method you need to release them after the test runs.Annotating a public void method with @After causes that method to be run after the Test method. All @After methods are guaranteed to run even if a Before or Test method throws an exception. The @After methods declared in superclasses will be run after those of the current class.

如果在@Before注解方法中分配了额外的资源,那么在测试执行完后,需要释放分配的资源。

使用@After注解一个public void方法会使该方法在@Test注解方法执行后被执行

即使在@Before注解方法、@Test注解方法中抛出了异常,所有的@After注解方法依然会被执行,见示例

父类中的@After注解方法会在子类@After注解方法执行后被执行`public class MathTest {
@Before
public void setUp() throws Exception {
throw new Exception();
}

@Test
public void testAdd() {
    Math m = new Math();
    assertTrue(m.add(1, 1) == 2);
}

@After
public void tearDown() throws Exception {
    System.out.println("after");
}

}
@AfterClass

If you allocate expensive external resources in a Before Class method you need to release them after all the tests in the class have run. Annotating a public static void method with @AfterClass causes that method to be run after all the tests in the class have been run. All @AfterClass methods are guaranteed to run even if a Before Class method throws an exception.The @AfterClass methods declared in superclasses will be run after those of thecurrent class.

如果在@BeforeClass注解方法中分配了代价高昂的额外的资源,那么在测试类中的所有测试方法执行完后,需要释放分配的资源。

使用@AfterClass注解一个public static void方法会使该方法在测试类中的所有测试方法执行完后被执行

即使在@BeforeClass注解方法中抛出了异常,所有的@AfterClass注解方法依然会被执行

父类中的@AfterClass注解方法会在子类@AfterClass注解方法执行后被执行

@Before

When writing tests, it is common to find that several tests need similar objects created before they can run. Annotating a public void method with @Before causes that method to be run before the Test method. The @Before methods of superclasses will be run before those of the current class. No other ordering is defined.

当编写测试方法时,经常会发现一些方法在执行前需要创建相同的对象

使用@Before注解一个public void 方法会使该方法在@Test注解方法被执行前执行(那么就可以在该方法中创建相同的对象)

父类的@Before注解方法会在子类的@Before注解方法执行前执行

@BeforeClass

Sometimes several tests need to share computationally expensive setup (like logging into a database). While this can compromise the independence of tests, sometimes it is a necessary optimization.Annotating a public static void no-arg method with @BeforeClass causes it to be run once before any of the test methods in the class. The @BeforeClass methods of superclasses will be run before those the current class.

有些时候,一些测试需要共享代价高昂的步骤(如数据库登录),这会破坏测试独立性,通常是需要优化的

使用@BeforeClass注解一个public static void 方法,并且该方法不带任何参数,会使该方法在所有测试方法被执行前执行一次,并且只执行一次

父类的@BeforeClass注解方法会在子类的@BeforeClass注解方法执行前执行

@Ignore

Sometimes you want to temporarily disable a test or a group of tests. Methods annotated with Test that are also annotated with @Ignore will not be executed as tests. Also, you can annotate a class containing test methods with @Ignore and none of the containing tests will be executed. Native JUnit 4 test runners should report the number of ignored tests along with the number of tests that ran and the number of tests that failed.

对包含测试类的类或@Test注解方法使用@Ignore注解将使被注解的类或方法不会被当做测试执行

JUnit执行结果中会报告被忽略的测试数`

public class MathTest {
    @Ignore("do not test")
    @Test
    public void testAdd() {
        Math m = new Math();
        assertTrue(m.add(1, 1) == 2);
    }
}

@Ignore
public class MathTest {
    @Test
    public void testAdd() {
        Math m = new Math();
        assertTrue(m.add(1, 1) == 2);
    }
}

执行结果相同:
@Test

The Test annotation tells JUnit that the public void method to which it is attached can be run as a test case. To run the method, JUnit first constructs a fresh instance of the class then invokes the annotated method. Any exceptions thrown by the test will be reported by JUnit as a failure. If no exceptions are thrown, the test is assumed to have succeeded.

The Test annotation supports two optional parameters.

The first, expected,declares that a test method should throw an exception. If it doesn’t throw an exception or if it throws a different exception than the one declared, the test fails.

The second optional parameter, timeout, causes a test to fail if it takes longer than a specified amount of clock time (measured in milliseconds).

@Test注解的public void方法将会被当做测试用例

JUnit每次都会创建一个新的测试实例,然后调用@Test注解方法

任何异常的抛出都会认为测试失败

@Test注解提供2个参数:

1,“expected”,定义测试方法应该抛出的异常,如果测试方法没有抛出异常或者抛出了一个不同的异常,测试失败

2,“timeout”,如果测试运行时间长于该定义时间,测试失败(单位为毫秒)
public class MathTest {
@Test(expected=Exception.class)
public void testAdd() throws Exception{
throw new Exception();
}
}

public class MathTest {
    @Test(timeout=5000)
    public void testAdd() {
        for(;;){

        }
    }
}

总结:
@After:释放资源
@Test:测试方法,在这里可以测试期望异常和超时时间
@Ignore:忽略的测试方法
@BeforeClass:针对所有测试,只执行一次,且必须为static void
@AfterClass:针对所有测试,只执行一次,且必须为static void
一个JUnit 4 的单元测试用例执行顺序为:
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass
每一个测试方法的调用顺序为:
@Before –> @Test –> @After

本文参考:http://blog.youkuaiyun.com/a19881029/article/details/9668969
http://www.cnblogs.com/maxupeng/archive/2010/12/03/1895698.html

【JAVA】Junit 的注解(Annotation)介绍_@test相关 参考来源:https://www.softwaretestinghelp.com/junit-tutorial/https://www.softwaretestinghelp.com/junit-annotations-tutorial/https://www.jianshu.com/p/3fbe2c2b3e26https://doczhcn.gitbook.io/junit5/index/index-2/annotations单元测试是对小逻辑或代码的测试,只针对一小部分代码,可能只是一个方法或一个类单元 阅读详情

相关推荐

Spring整合MyBatis、Spring整合JUnit4(Spring纯注解开发完结篇)

文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习。

KJ.JK 1万+

【软件测试】了解JUnit单元测试框架常用注解

针对Java编程语言的最流行的,用于庇阿涅和运行测试,提供注释来识别测试方法,提供断言来测试预期结果,提供测试运行来运行测试。JUnit测试可以自动运行并检查自身结果并提供即时反馈。Selenium是自动化测试框架,JUnit是单元测试框架拿着一个技术写自动化测试测试用例(Selenium3)拿着一个技术管理已经编写好的测试用例(JUnit5)

m0_73067372的博客 2479

从波形图到参数调优:一次无感BLDC电机启动失败的深度解析

本文深入解析无感BLDC电机启动失败案例,通过波形分析揭示参数不匹配和IPM保护机制触发等关键问题。详细探讨了过零点检测、PWM周期设置及强拖参数调优的底层逻辑,并分享IPM模块保护机制与实战调优技巧,最终实现99.98%的启动成功率。

weixin_29182481的博客 819

JUnit中的注解

JUnit5中的常用注解(后期有补充会继续更新)

weixin_44808982的博客 1769

宝塔面板添加站点及运营商SSL免费证书的申请与使用

本文详细介绍在宝塔面板下如何正确添加站点、配置站点,及在运营商如何申请免费SSL证书,将其配置到宝塔站点里。 给你的网站加一把锁,教你免费SSL证书申请,配置到自己的网站中。 环境:Ubuntu server 18 工具:宝塔控制面板 平台:阿里云 Web服务器:Nginx 宝塔:https://www.bt.cn/ 阿里云:https://www.aliyun.com/ 腾讯云:https://cloud.tencent.com/ 要求: 1.宝塔控制面板搭建完毕。 2掌握域名解析的原理。 3.了解ht

贺兰山长老 5057

RTX 5090配Ubuntu 24.04踩坑记:手把手搞定OpenVLA-OFT环境(附版本避坑清单)

本文详细记录了在RTX 5090显卡和Ubuntu 24.04系统上部署OpenVLA-OFT环境的完整过程,包括驱动安装、CUDA配置、PyTorch版本选择等关键步骤。提供了经过验证的版本组合清单和常见错误解决方案,帮助开发者高效搭建AI开发环境。

weixin_30342209的博客 465

【全网最全】Junit注解详解!

JUnit4常用的几个注解: @Before 初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次) @After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次) @Test:测试方法 可以测试期望异常和超时时间 @Test(expected=ArithmeticException.class) 检查被测方法是否抛出ArithmeticException异常 @Ignore 忽略的

JavaEdge全是干货的技术号 2312

UCIe相关开源项目记录

目前找到的和UCIe协议有关的5个开源项目,如果也有正在做的朋友,欢迎私信交流

m0_64102565的博客 822

自定义Junit框架中的一些常用注解

使用@interface来申明一个自定义注解:其实上就是一个继承Annotation的接口,属性就是抽象方法格式public @interface xxx(注解名称){ public 属性类型 属性名称() default 默认值 }。有default关键字可以给属性赋值,如果没有default关键字,那么使用注解的时候,必须给属性赋值。其中属性只有一个属性可以用value来定义,使用注解的时候可以不用写value直接给值即可//定义一个Test注解 作用范围是方法和类 运行时有效。

lnjlovejy的博客 1169

Python爬虫实战:58同城租房信息分析与可视化,寻找高性价比房源

随着城市化进程加快,租房需求日益增长。58同城作为国内领先的本地生活服务平台,汇聚了大量房源信息。本教程将使用最新的Python爬虫技术获取58同城租房数据,通过数据分析与可视化揭示各区域租金水平,并运用机器学习算法找出性价比高的房源。本项目将使用异步爬虫、反爬对抗技术、数据清洗、可视化分析和机器学习建模等技术栈。

2201_76125261的博客 1279

从误检率30%到99.7%:YOLOv8/v9工业零件缺陷检测实战(附产线部署全流程与参数调优秘籍)

工业场景YOLO实战:从实验室到车间的关键调优策略 本文针对工业缺陷检测的特殊性,系统总结了YOLOv8/v9在工业应用中的实战经验。通过齿轮厂缺陷检测案例,揭示了实验室模型与工业场景的三点本质差异:小目标特性(0.2-1mm缺陷)、复杂背景干扰(油污/反光)和数据量不足问题。重点提出了工业级解决方案:1)数据采集需覆盖极端工况(不同光照/污染/角度);2)标注采用LabelStudio+预标注提升效率;3)定制工业增强策略(反光模拟/缺陷复制粘贴)。文章还提供了完整的参数调优记录和TensorRT加速部署

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1731

Junit4 常用注解个人总结

Junit4 常用注解个人总结

BaiYZ的Blog 2101

099、多摄融合与变焦系统:广角到长焦的无缝切换算法

本文分享了多摄融合与变焦系统开发中的实战经验和关键挑战。作者通过一个旗舰机项目案例,揭示了广角到长焦切换时画面抖动问题的根源——融合算法误将视差当作运动补偿,并提出"视差冻结窗口"的解决方案。文章总结了三大多摄融合难点:物理视差处理、亮度差异补偿和切换时机把控,详细阐述了分层架构设计、融合权重计算等核心技术。同时强调了产线校准的重要性,并给出五项实用建议:允许边缘鬼影保留、参数场景化配置、加强产线检测、完善调试接口,以及合理运用AI技术。全文展现了多摄融合技术在时间、空间和感知维度上的复杂平衡艺术。

sundong_81的博客 45

JUnit4 注解基本介绍

@After 如果在@Before注解方法中分配了额外的资源,那么在测试执行完后,需要释放分配的资源。如果@After注解一个public void方法会使该方法在@Test注解方法执行后被执行。即使在@Before注解方法、@Test注解方法中抛出了异常,所有的@After注解方法依然会被执行,父类的@After注解方法会在子类@After注解方法执行后被执行。   @AfterClass...

金溪的博客 451

【电源专题】LDO基础——热性能2

对于LDO散热而言,选择合适的元件并不是一件简单的任务。为了实现高效、尺寸得当并成本低的散热解决方案,我们在早期设计阶段就需要确保所有器件都可用并且已经考虑到元件和各种特性。

一点硬件 894

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JUnit4注解基本介绍(超详细)

@AfterIf you allocate external resources in a Before method you need to release them after the test runs.Annotating a public void method with @After causes that method to be run after the Test method....

lp_cq242的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JUnit 4 使用 Java 5 中的注解(annotation),以下是JUnit 4 常用的几个 annotation 介绍...

  JUnit 4 中的Before After Ignore Test BeforeClass AfterClass @BeforeClass:针对所有测试,只执行一次,且必须为static void @Before:初始化方法 @Test:测试方法,在这里可以测试期望异常和超时时间 @Ignore:忽略的测试方法 @After:释放资源 @AfterClass:针...

绝对秋香 271

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

JUnit4中@Before、@After、@Test等注解的作用

转自:JUnit4中@Before、@After、@Test等注解的作用 - 小飞猪咯咯 - 博客园

qq_39704419的博客 258

【单元测试】Junit 4(二)--eclipse配置Junit+Junit基础注解

​ 前面我们介绍了白盒测试方法,后面我们来介绍一下Junit 4,使用的是eclipse(用IDEA的小伙伴可以撤了)

weixin_67553250的博客 4126

JUnit常用注解

首先以Junit4为基础介绍常用注解: 常用的JUnit注解包括@BeforeClass、@AfterClass、@Before、@After、@Test、@Ignore等。 它们得到了每个测试用例的运行次序,即:@BeforeClass–>@Before–>@Test–>@After–>@AfterClass,从而确定了整个测试流程。 注解 作用 @BeforeClass 所注解的方法是JUnit测试时首先被运行的方法且只能运行一次,通常用来进行预处理等操作。

weixin_44756457的博客 2188

【Java学习笔记】JUnit

JUnit的基本介绍、用途、添加使用方法

2401_88623584的博客 523

JUnit4

JUnit 是 Java 编程语言的单元测试框架,用于编写和运行可重复的自动化测试。JUnit 是一个开放的资源框架,用于编写和运行测试。提供注解来识别测试方法。提供断言来测试预期结果。JUnit 测试允许你编写代码更快,并能提高质量。JUnit 优雅简洁,没那么复杂,花费时间较少。JUnit 测试可以自动运行并且检查自身结果并提供即时反馈,所以也没有必要人工梳理测试结果的报告。JUnit 测试可以被组织为测试套件,包含测试用例,甚至其他的测试套件。

专注于技术分享的博主 891

spring5与单元测试框架junit4 和junit5的整合

spring整合单元测试的目的,是加载配置文件时,不在每次写如下代码来加载配置文件,直接使用注解方式来添加配置文件 ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml"); 1、spring5整合junit4 (1)添加junit4的依赖 (2)添加注解,来加载配置文件 // @RunWith(SpringJUnit4ClassRunner.class) //单元测试框架 使用注解 // ..

ljj123_的博客 1849

Spring 对 Junit4,Junit5 的支持上的运用

Spring 对 Junit4 的依赖的 jar 包,同时@ContextConfiguration("classpath:spring.xml") // 注意该:spring.xml 文件要一定要在类路径下才行同时注意:该Juit4的@Test 的注解是在:org.junit.Test;包下的Spring 对 Junit5 的依赖的 jar 包,同时@ContextConfiguration("classpath:spring.xml") // 同样一定要是在类路径下。

2501_92608043的博客 759
上一篇: 【Android】将一个Java文件制作成dex文件
下一篇: TestNg入门教程
和技术赛跑
博客等级 码龄11年 80粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值