首页
学习
活动
专区
圈层
工具
发布

Junit5系列-Junit5中assertThrows()与assertDoesNotThrow()方法详解

简介 Junit5中新添加了对方法抛出异常的断言Assertions类中的assertThrows()和assertDoesNotThrow(),使用此方法可以对被测试方法抛出的异常进行断言测试,而在...assertThrows()主要对被测试方法的抛出异常进行测试,测试所抛出的异常是否满足预期。...下面来看一些案例使用: 案例分析 其中每个方法的作用代码中的注释写的已经非常清楚了,就不再赘述了. 大家最好将代码自己测试一遍,可以加深理解与记忆!..., messageSupplier); } 我们可以看到,其中都是调用了AssertThrows.assertThrows方法,这里的AssertThrows和Assertions的关系和我们在...Junit5系列-Junit5中Assertions断言类一文中Assertions和assertTrue关系一样。

12.4K70

Spring学习笔记(二十八)——springboot单元测试&JUnit5

编写测试方法:@Test标注(注意需要使用junit5版本的注解) Junit类具有Spring的功能,@Autowired、比如 @Transactional 标注测试方法,测试完成后自动回滚 1....异常断言 在JUnit4时期,想要测试方法的异常情况时,需要用@Rule注解的ExpectedException变量还是比较麻烦的。...而JUnit5提供了一种新的断言方式Assertions.assertThrows() ,配合函数式编程就可以进行使用。...嵌套测试 JUnit 5 可以通过 Java 中的内部类和@Nested 注解实现嵌套测试,从而可以更好的把相关的测试方法组织在一起。...在内部类中可以使用@BeforeEach 和@AfterEach 注解,而且嵌套的层次没有限制。 注意: 1.

1.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SpringBoot2---单元测试(Junit5)

    单元测试 JUnit5 的变化 JUnit5常用注解 常用注解使用演示 断言机制(assertions) 1、简单断言 2、数组断言 3、组合断言 4、异常断言 5、超时断言 6、快速失败 4、前置条件...(assumptions) 5、嵌套测试 6、参数化测试 Junit4到Junit5的迁移指南 ---- JUnit5 的变化 Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库...编写测试方法:@Test标注(注意需要使用junit5版本的注解) Junit类具有Spring的功能,@Autowired、比如 @Transactional 标注测试方法,测试完成后自动回滚 ---...而JUnit5提供了一种新的断言方式Assertions.assertThrows() ,配合函数式编程就可以进行使用 第一个参数是预期出现的异常类型,第二个参数是Executable 接口,第三个参数是不符合第一个异常时抛出的信息...在内部类中可以使用@BeforeEach 和@AfterEach 注解,而且嵌套的层次没有限制。

    1.5K20

    Spring Boot 集成 JUnit5,让单元测试变得优雅!

    为什么使用JUnit5 JUnit4被广泛使用,但是许多场景下使用起来语法较为繁琐,JUnit5中支持lambda表达式,语法简单且代码不冗余。...简介 如图,JUnit5结构如下: JUnit Platform:这是Junit提供的平台功能模块,通过它,其它的测试引擎都可以接入Junit实现接口和执行。...JUnit JUpiter:这是JUnit5的核心,是一个基于JUnit Platform的引擎实现,它包含许多丰富的新特性来使得自动化测试更加方便和强大。...testNotNull() { assertNotNull(new Object()); } assertThrows用来判断执行抛出的异常是否符合预期,并可以使用异常类型接收返回值进行其他操作 @...Test @DisplayName("测试断言抛异常") void testThrows() { ArithmeticException arithExcep = assertThrows(ArithmeticException.class

    1K20

    Springboot集成JUnit5优雅进行单元测试

    为什么使用JUnit5 JUnit4被广泛使用,但是许多场景下使用起来语法较为繁琐,JUnit5中支持lambda表达式,语法简单且代码不冗余。...如图,JUnit5结构如下: JUnit Platform: 这是Junit提供的平台功能模块,通过它,其它的测试引擎都可以接入Junit实现接口和执行。...JUnit JUpiter:这是JUnit5的核心,是一个基于JUnit Platform的引擎实现,它包含许多丰富的新特性来使得自动化测试更加方便和强大。...NotNull") void testNotNull() { assertNotNull(new Object()); } assertThrows用来判断执行抛出的异常是否符合预期...,并可以使用异常类型接收返回值进行其他操作 @Test @DisplayName("测试断言抛异常") void testThrows() { ArithmeticException

    2.5K20

    Spring Boot 集成 JUnit5,更优雅单元测试!

    为什么使用JUnit5 JUnit4被广泛使用,但是许多场景下使用起来语法较为繁琐,JUnit5中支持lambda表达式,语法简单且代码不冗余。...如图,JUnit5结构如下: JUnit Platform :这是Junit提供的平台功能模块,通过它,其它的测试引擎都可以接入Junit实现接口和执行。...JUnit JUpiter :这是JUnit5的核心,是一个基于JUnit Platform的引擎实现,它包含许多丰富的新特性来使得自动化测试更加方便和强大。...NotNull") void testNotNull() { assertNotNull(new Object()); } assertThrows用来判断执行抛出的异常是否符合预期...,并可以使用异常类型接收返回值进行其他操作 @Test @DisplayName("测试断言抛异常") void testThrows() { ArithmeticException

    1.5K20

    JUnit5学习之三:Assertions类

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于《JUnit5学习》系列 《JUnit5学习》...),Assertions类的一系列静态方法给我们提供了单元测试时常用的断言功能,本篇主要内容如下: Assertions源码分析 写一段代码,使用Assertions的常用静态方法 使用异常断言 使用超时断言...Assertions.assertThrows方法,用来测试Executable实例执行execute方法时是否抛出指定类型的异常; 如果execute方法执行时不抛出异常,或者抛出的异常与期望类型不一致...,都会导致测试失败; 写段代码验证一下,如下,1除以0会抛出ArithmeticException异常,符合assertThrows指定的异常类型,因此测试可以通过: @Test @DisplayName.../ 其execute方法执行时,如果抛出了异常,并且异常的类型是assertThrows的第一个参数(这里是ArithmeticException.class), // 那么测试就通过了

    72530

    Spring Boot 集成 JUnit5,更优雅单元测试!

    简介 如图,JUnit5结构如下: JUnit Platform:这是Junit提供的平台功能模块,通过它,其它的测试引擎都可以接入Junit实现接口和执行。...JUnit JUpiter:这是JUnit5的核心,是一个基于JUnit Platform的引擎实现,它包含许多丰富的新特性来使得自动化测试更加方便和强大。...testNotNull() { assertNotNull(new Object()); } assertThrows用来判断执行抛出的异常是否符合预期,并可以使用异常类型接收返回值进行其他操作...@Test @DisplayName("测试断言抛异常") void testThrows() { ArithmeticException arithExcep = assertThrows(...需要使用到@ParameterizedTest,同时也需要@ValueSource提供一组数据,它支持八种基本类型以及String和自定义对象类型,使用极其方便。

    4.2K31

    Spring Boot 集成 JUnit5,更优雅单元测试!

    简介 如图,JUnit5结构如下: JUnit Platform:这是Junit提供的平台功能模块,通过它,其它的测试引擎都可以接入Junit实现接口和执行。...JUnit JUpiter:这是JUnit5的核心,是一个基于JUnit Platform的引擎实现,它包含许多丰富的新特性来使得自动化测试更加方便和强大。... testNotNull() {         assertNotNull(new Object());     } assertThrows用来判断执行抛出的异常是否符合预期,并可以使用异常类型接收返回值进行其他操作...@Test @DisplayName("测试断言抛异常") void testThrows() {     ArithmeticException arithExcep = assertThrows(...需要使用到@ParameterizedTest,同时也需要@ValueSource提供一组数据,它支持八种基本类型以及String和自定义对象类型,使用极其方便。

    1.2K20

    聊一聊Spring框架接口测试常见场景有哪些?

    Spring框架进行接口测试包含对接口的功能测试,数据访问,性能测试等。功能测试,验证接口是否按照需求工作,比如正确的输入输出、业务逻辑处理。...还有异常处理测试,比如当传入无效参数时,接口是否能正确返回错误信息。参数验证也是关键,比如使用@Validated注解时的验证逻辑是否生效。...权限控制测试,比如Spring Security的权限验证,不同角色用户访问接口的结果是否符合预期。性能测试,比如接口的响应时间、并发处理能力。安全测试,比如SQL注入、XSS攻击的防护。...Spring特有的测试工具,比如@WebMvcTest用于控制器层的测试,@DataJpaTest用于数据层的测试,以及如何利用MockBean来模拟Bean的行为。...此外,异常处理测试中,可以提到使用@ControllerAdvice和@ExceptionHandler来统一处理异常,并测试这些处理是否正确。一、基础 REST API 测试场景1.

    12520

    JUnit5基础教程

    JUnit5是Java的单元测试框架,用于测试Java程序代码。作为一名软件测试工程师,掌握JUnit是非常重要的。我们将从头开始,一步步学习JUnit5的用法。 一、准备工作 1....创建测试类:使用@Test注解标注测试方法,测试类名通常以Test结尾,如:MathTests。..., executable) 执行代码抛出异常 - 等等 六、测试套件与测试分组 JUnit支持把多个相关测试组织在一起: - @Suite用于注解测试套件类 - @RunWith(Suite.class...)用于启动测试套件 - @Categories用于给测试类或方法添加分类 - 然后可以在套件中包含指定分类的测试 七、参数化测试 使用@ValueSource等注解,可以运行同一测试逻辑针对不同输入...希望此详细教程能够帮助初级工程师彻底掌握JUnit5的使用。请在学习或使用中遇到任何问题,随时与我讨论。

    50620

    Java测试框架——JUnit详解(4&5)

    官方资料 JUnit4 常用注解和断言 代码测试搭建一个JUnit测试环境 生命周期 忽略测试 断言测试 异常测试 测试时间 套件测试 JUnit5 JUnit5对比JUnit4的好处 导包的改变 注解的改变...官方资料 学习一个东西,最好的办法就是去看官方文档: junit4官网 junit5官网 下面我根据官网和自己常用测试,来讲解JUnit JUnit4 常用注解和断言 代码测试搭建一个JUnit...@Test注解还提供了追踪异常的选择,expected 参数和 @Test 注释一起使用。...JUnit5对比JUnit4的好处 JUnit 5利用了Java 8或更高版本的特性,例如lambda函数,使测试更强大,更容易维护。 JUnit 5为描述、组织和执行测试添加了一些非常有用的新功能。...assertThrows()和 assertDoesNotThrow()取代了 @Test 注释中的预期属性。 ---- 嵌套测试。

    2.7K30

    如何使用junit5构建单元测试

    如果真的需要使用junit来进行单元测试的话,那该怎么办,所以今天就来探究一下如何使用junit。junit5根据不同maven的archetype创建的项目,使用的junit版本也不一样。...junit5的设计旨在解决 junit4的一些局限,并提供了更多的灵活性和功能。junit5包含了三个模块:JUnit Jupiter:这是用于编写测试的模块,提供了新的注解和功能。...assertThrows:断言抛出指定异常。assertTimeout:断言在规定时间内执行完成。fail:强制使测试失败。assertArrayEquals:用于比较两个数组是否相等。...了解了这些断言之后,我们就可以使用junit来编写测试单元。单元测试1. @Test@Test用来标记测试方法,junit5会自动识别和执行这些方法。...,使用不同的 fruit 参数执行 }}结语本文主要讲了junit5中常用的断言和注解,使用juint5可以快速的开发自己的测试单元。

    43910

    Java 后端自动化测试

    测试用例 测试用例是一组输入、执行条件和预期结果的集合,用于验证软件系统的正确性。 自动化测试 自动化测试是指使用自动化工具或脚本来执行测试用例,以减少人工测试的工作量,提高测试效率和准确性。...在实际的软件开发中,Mocking 和 Stubbing 通常结合使用,以创建一个可控的测试环境。...如果需要跳过测试用例,可以使用 -DskipTests 参数: mvn package -DskipTests JUnit JUnit 是一个 Java 编程语言的单元测试框架,用于编写和运行重复测试...assertThrows:用于验证方法是否抛出了指定的异常。 assertAll:用于组合多个断言,当其中一个断言失败时,后续断言不会执行。...验证异常 JUnit 5 中不再使用之前的 @Test(expected = …) 和 ExpectedException 规则来设定期待抛出的异常。

    43910

    五年了,你还在用junit4吗?

    : Junit4时需要使用rule方式,junit5提供了assertThrows更优雅的异常断言 @Test void exceptionTesting() { Throwable exception...3层,过于复杂的层次结构会增加开发者理解用例关系的难度 构造函数和方法的依赖注入 在之前的所有JUnit版本中,测试构造函数或方法都不允许有参数(至少不能使用标准的Runner实现)。...作为JUnit Jupiter的主要变化之一,测试构造函数和方法现在都允许有参数。...这带来了更大的灵活性,并为构造函数和方法启用依赖注入 TestInfo可获取测试信息 TestReporter可以向控制台输出信息 @Test @DisplayName("test-first") @Tag...参数测试我觉得是最好用的特性,可以大量减少重复模板式代码,也是junit5最惊艳的提升,强烈推荐使用 @ValueSource: 为参数化测试指定入参来源,支持八大基础类以及String类型,Class

    1.8K40

    Junit5系列-Junit5中Assertions断言类

    目录 简介 案例解析 源码解析 Assertions与AssertNull 简介 junit5中的JUnit Jupiter提供了Assertions类来替代了junit4中的Assert类并且添加了一些新的方法...()可以用来判断lambda表达式中的代码抛出的异常 * 比如下面案例就是测试了抛出异常的信息是否相同 * 参数: * 1:异常类声明 * 2:测试代码Lambda..., () -> { try { //这里只是简单的做个测试,当然1/0不该抛IllegalArgumentException异常 ,只是简单的测试一下...Assertions将测试方法集中在该方法内,不仅便于管理,还减少代码的复杂度,性能没有任何影响,为什么要去直接使用AssertNull等类呢,嘿嘿 最后:当然,Assertions提供的断言方法虽然多...,但有时候还是不够的,当Junit5不支持你的单元测试需求时,Junit5官方还是鼓励程序员去使用第三方支持库的,比如:AssertJ、Hamcrest,Truth等。。。。

    3.9K21
    领券