junit5

阿智智18 小时前
java·单元测试·maven·junit5
用Maven的quickstart archetype创建项目并结合JUnit5单元测试最近在读Bruce Eckel的书《On Java 8》1,其中第十六章《Validating》有一个用JUnit5进行单元测试的例子。作者用Gradle构建并运行单元测试。因为我对Maven比较熟悉,当即决定用Maven并结合JUnit5实现该例子的运行。
安冬的码畜日常3 天前
单元测试·测试驱动开发·tdd·junit5·test-driven
【JUnit实战3_32】第二十章:用 JUnit 5 进行测试驱动开发(TDD)(上)——将非 TDD 项目改造为 TDD 项目《JUnit in Action》全新第3版封面截图写在前面 从第 20 章开始,本书也进入最后一个板块的讲解。这一部分主要聚焦 JUnit 5 的几个高级话题:TDD、BDD 以及测试金字塔策略。对于我这样的测试新手而言,每一章都十分精彩,让人耳目一新——TDD 和 BDD 的概念听了很多,完整流程究竟是怎样的一直没有一个直观的认识。最后这个板块提供的就是诸如此类的完整示范。在国内普遍重交付、轻测试的大背景下,深入理解这些经典案例,对于后期充分利用 AI 智能体来提效软件测试,具有十分重要的意义。
安冬的码畜日常3 天前
测试工具·junit·单元测试·测试驱动开发·tdd·junit5·test-driven
【JUnit实战3_33】第二十章:用 JUnit 5 进行测试驱动开发(TDD)(下)——TDD 项目的重构过程及新功能的开发实战《JUnit in Action》全新第3版封面截图写在前面 有了上篇构建的 TDD 基础,本节重点介绍 TDD 项目的重构过程,以及基于 TDD 进行新功能特性开发的具体步骤。干货满满,一起来先睹为快吧。
安冬的码畜日常9 天前
spring·单元测试·jdbc·hibernate·orm·junit5
【JUnit实战3_31】第十九章:基于 JUnit 5 + Hibernate + Spring 的数据库单元测试《JUnit in Action》全新第3版封面截图写在前面 本章虽然是全书中代码量很大的一章,但并非本章笔记整理的重点,学习时应该结合案例场景比较四种应用场景的优缺点。
安冬的码畜日常10 天前
测试工具·junit·单元测试·restful·rest api·junit5
【JUnit实战3_30】第十八章:REST API 接口测试(下)—— REST API 接口的 MockMvc + JUnit 5 测试实战《JUnit in Action》全新第3版封面截图写在前面 上篇介绍了 REST API 接口项目的搭建,本以为下篇应该轻松不少,没想到认真梳理下来居然有种在学 CSS 的错觉——知识点间的涟漪效应大大出乎我的意料——可能这也是为什么作者没有详细展开某些细节的原因吧(毕竟还有给第四板块压轴的第 19 章),不能喧宾夺主。但基于实战的需要,必要的深挖还是不能少的,尤其是第一次接触这些知识点,现在不搞懂,拖到后面再搞懂的成本往往十分昂贵。一起来看看吧。
安冬的码畜日常12 天前
测试工具·junit·gui测试·htmlunit·junit5
【JUnit实战3_25】第十五章:表现层测试(上)—— HtmlUnit 在网页测试中的用法《JUnit in Action》全新第3版封面截图写在前面 这一章重点关注表现层测试(presentation-layer testing)即网页测试。主要带领大家通过两款常用的测试工具,了解表现层测试的具体方法和基本流程。上篇梳理 HtmlUnit,下篇梳理 Selenium。
安冬的码畜日常14 天前
spring·观察者模式·设计模式·单元测试·ioc·依赖注入·junit5
【JUnit实战3_27】第十六章:用 JUnit 测试 Spring 应用:通过实战案例深入理解 IoC 原理《JUnit in Action》全新第3版封面截图写在前面 本书前 15 章内容都可以作为铺垫,对于 Java 开发者而言,真正的重点从这一章才算开始。作者出于知识点全覆盖的考虑,从 Spring 框架最原始的 XML 配置开始,聚焦 Spring 和 JUnit 单元测试最关心的控制反转(IoC,即依赖注入)机制,结合两个典型案例进行了深入全面的介绍,非常具有参考价值。
安冬的码畜日常14 天前
spring boot·功能测试·测试工具·设计模式·单元测试·junit5
【JUnit实战3_28】第十七章:用 JUnit 5 实测 SpringBoot 项目《JUnit in Action》全新第3版封面截图写在前面 有了前一章对 Spring 框架依赖注入机制的深入剖析,本章讲解 SpringBoot 框架就显得格外轻松了。同样一个案例,改造为 SpringBoot 项目后需要配置的注解都少了很多,甚至都不需要引入 application-context.xml 文件了;再配合强大的 IDEA 辅助功能,可以真正让开发者聚焦业务逻辑或测试逻辑,而不用过分关注单元测试的环境搭建,非常省心。
安冬的码畜日常15 天前
selenium·测试工具·junit·gui测试·junit5·表现层测试
【JUnit实战3_26】第十五章:表现层测试(下)—— Selenium 在网页测试中的用法《JUnit in Action》全新第3版封面截图写在前面 本篇继续介绍表现层测试,用到的测试工具为 Selenium。Selenium 发展到今天就像微软的 Excel 一样在自动化测试领域可谓无处不在了,本章不可能一一演示 Selenium 的每个应用场景,只能蜻蜓点水简单应用一下,适合测试新手;这篇笔记只是从实战出发,对书中给出的案例进行实操、复盘,只能从宏观上了解 Selenium 的用法,想要深耕甚至精通这个工具还有很长一段路要走。
安冬的码畜日常16 天前
git·测试工具·ci/cd·jenkins·集成测试·持续集成·junit5
【JUnit实战3_22】 第十三章:用 JUnit 5 做持续集成(下):Jenkins + JUnit 5 + Git 持续集成本地实战演练完整复盘《JUnit in Action》全新第3版封面截图写在前面 上篇讲了,第十三章的后半部分内容围绕 Jenkins 如何开展持续集成进行了演示,但中途由于牵涉太多 Git 工作流和相关配置细节的问题,很多重要节点没能详细展开。本篇根据书中思路在本地进行了完整实战演练,并对当中的详细配置细节及遇到的问题进行了深入分析,以便今后复盘。
安冬的码畜日常17 天前
junit·eclipse·jenkins·intellij idea·持续集成·junit5·netbeans
【JUnit实战3_21】第十二章:JUnit 5 与主流 IDE 的集成 + 第十三章:用 JUnit 5 做持续集成(上):在本地安装 Jenkins《JUnit in Action》全新第3版封面截图写在前面 可能是出于全面的考虑,第 12 章专门介绍了 JUnit 5 与三款主流 IDE 的集成情况并进行了横向对比,用到的案例和截图都是前面章节的,实在没多少干货。第 13 章虽然只介绍了 Jenkins 的基本用法和持续集成的最简化步骤,但真要实践的话,整个过程会有很多细节问题需要处理,篇幅又太长了。因此本篇只梳理到 Jenkins 在 Windows 本地的安装,下一篇详细介绍基于 JUnit 5 单元测试下的 Jenkins 持续集成实战。敬请
安冬的码畜日常17 天前
测试工具·junit·单元测试·gradle·软件构建·groovy·junit5
【JUnit实战3_20】第十一章:用 Gradle 运行 JUnit 测试实战《JUnit in Action》全新第3版封面截图写在前面 一直都想尝试用 Gradle 构建项目,毕竟 Gradle 的轻量和灵活总是让围城外面的人向往不已,但学习曲线的陡峭也让人望而却步。本书第 11 章刚出版时演示的最新版是 6.0,现在已经到 9.1 并且默认支持 Kotlin 而不再是 Groovy 了。但既然是实战类笔记,就必须在本地跑跑最新版,看看有什么不一样的地方。
安冬的码畜日常18 天前
java·测试工具·junit·单元测试·maven·junit5
【JUnit实战3_19】第十章:用 Maven 3 运行 JUnit 测试(下)《JUnit in Action》全新第3版封面截图写在前面 本篇继续梳理 Maven 知识点。本以为没什么可以复盘的,实测过程中却遇到了好几个不大不小的坑,一并记录下来,提醒自己不要自以为是,毕竟温故才能知新。
安冬的码畜日常18 天前
测试工具·junit·maven·artifact·junit5
【JUnit实战3_18】第十章:用 Maven 3 运行 JUnit 测试(上)《JUnit in Action》全新第3版封面截图写在前面 结束了前面两个大板块共九章的内容,从第十章开始,全书将进入另一个新的板块,重点探讨构建和集成的相关话题。五年过去了,软件构建和集成的热度还在逐年攀升。这不仅得益于作者对技术趋势的高敏感度,更源于各类基于云平台云原生应用技术的日渐成熟与完善,而这背后几乎都有 AI 技术浪潮的推波助澜。相信 AI 还会进一步深刻重塑今后的软件开发范式,倒逼企业组织形态的深刻变革。暗潮涌动下,一个崭新的时代即将破晓。此刻正处在风口浪尖的每一位开发者们:你准备好了吗?
安冬的码畜日常18 天前
测试工具·junit·单元测试·junit5·mock模拟·mock对象·mock objects
【JUnit实战3_13】第八章:mock 对象模拟技术在细粒度测试中的应用(上)《JUnit in Action》全新第3版封面截图写在前面 在上一章介绍 Stub 模拟时作者曾反复强调,细粒度的测试还得使用 mock 对象进行模拟,并且还说 Stub 是过去人们对模拟测试的认识还不准确导致的中间产物,可谓吊足了我对 mock 模拟技术的胃口。深入了解后才发现,自己之前从前端和 Postman 那里偷学来的那点 mock 技术还是太肤浅了,至少对于隔离和本地这两个概念的认识很模糊。直到看到作者演示的案例,加上 DeepSeek 的趁热打铁,对于这个 mock 才自认算是入门了。可见叙
安冬的码畜日常20 天前
测试工具·junit·重构·单元测试·多态·junit5·mock 模拟
【JUnit实战3_14】第八章:mock 对象模拟技术在细粒度测试中的应用(中):为便于模拟重构原逻辑的两种策略《JUnit in Action》全新第3版封面截图写在前面 本篇为第八章自学笔记的中篇,作者通过极其细致的案例演示和倾囊相授的讲解风格,将各个关键节点同第六章介绍过的、编写可测试代码的基本原则前后呼应,让人既了解这些原则的心法,又熟悉具体的招式打法,真正让测试用例和功能模块的正确打开方式深深印入每一位开发者的脑海中,读罢让人去繁就简、豁然开朗。
安冬的码畜日常20 天前
测试工具·junit·单元测试·测试覆盖率·1024程序员节·junit5
【JUnit实战3_10】第六章:关于测试的质量(上)《JUnit in Action》全新第3版封面截图写在前面 如果说第五章是测试相关理论的开胃菜,那么第六章就称得上是本书第二大模块的速成心法了。这一章广泛探讨了影响测试质量高低的因素,进一步列举了很多编写可测试代码(testable code)的基本原则,学完本章我才对 OOP 中的多态有了更新的认识,之前工作中大都停留在表面。由于篇幅较长,第六章笔记拟分为上、下两个部分进行梳理,本篇为第六章的上篇,重点介绍测试覆盖率的相关概念、应用场景及常见工具的使用。下篇会在此基础上介绍 TDD 和 BDD 的相关
安冬的码畜日常21 天前
测试工具·junit·单元测试·junit5·arquillian·容器内测试·in-container
【JUnit实战3_17】第九章:容器内测试(下)——Arquillian 框架的用法简介《JUnit in Action》全新第3版封面截图写在前面 本篇重点介绍容器内测试的专用框架——Arquillian。作者成书之时该框架还没能全面支持 JUnit 5,因此只能沿用 JUnit 4。最新消息据说已经实现了 JUnit 5 的兼容(待学完本书后验证)。Arquillian 框架貌似解了容器场景下的燃眉之急,但从这几年的爆冷也暴露了一些问题,让其团队尝到了热脸贴冷屁股的滋味……
安冬的码畜日常22 天前
功能测试·测试工具·junit·单元测试·junit5
【JUnit实战3_09】第五章:软件测试的基本原则简介《JUnit in Action》全新第3版封面截图写在前面 本书虽然以实战命名,但也少不了必要的理论支撑,尤其是软件测试领域。在理论知识的处理上作者也是用了些心思的:故意放到第一个模块的最后,让人先尝到了 JUnit 5 的甜头,又可以当作复盘课温故知新;要是放在全书的第一章,估计很多人都会倒在这些并不高深的理论面前。
安冬的码畜日常22 天前
测试工具·junit·单元测试·junit5·stub模拟·模拟技术·stub 桩
【JUnit实战3_12】第七章:用 Stub 模拟进行粗粒度测试《JUnit in Action》全新第3版封面截图写在前面 在上一章探讨了测试质量的相关话题后,后面两章就可以学习软件测试中的模拟技术了。本章先介绍 Stub 模拟技术,下一章则聚焦 mock 对象模拟技术。和第一部分的几章内容一样,学习本章的要领也是深入理解 Stub 模拟的应用场景和演示的典型案例,然后对照随书代码,带着问题或猜想在本地做一些小改动,这样才能进一步加深印象。