本书全面介绍JUnit 5的新特性及其主要应用。全书共22章,分为五部分。第一部分介绍JUnit 的核心、JUnit的体系结构、从JUnit 4向JUnit 5迁移、软件测试原则等内容;第二部分介绍软件测试质量、用stub和mock object进行测试、容器内测试等内容;第三部分介绍用Maven和Gradle工具运行JUnit测试、IDE对JUnit 5的支持、JUnit 5的持续集成等内容;第四部分介绍JUnit 5扩展模型,表示层测试,Spring、Spring Boot和REST API以及数据库应用程序的测试等内容;第五部分介绍使用JUnit 5进行测试驱动开发和行为驱动开发,以及用JUnit 5实现测试金字塔策略等内容。
本书既适合刚接触JUnit框架的Java开发人员阅读,也适合想要了解JUnit 5新特性的、经验丰富的JUnit开发人员学习,尤其适合企业级Java开发人员阅读。本书还可作为高等院校学生“软件测试”课程的参考用书。
作者简介:
克特林·图多塞(Cătălin Tudose),拥有计算机科学专业的博士学位,担任过 Java 高级开发员和技术团队带头人,有超过 15年的 Java 开发经验。
目录:
第一部分 JUnit 2
第1章 JUnit起步 3
1.1 证明程序的可运行性 4
1.2 从零开始 5
1.3 安装JUnit 9
1.4 使用JUnit测试 11
1.5 小结 13
第2章 探索JUnit的核心 14
2.1 核心注解 15
2.2 嵌套测试 20
2.3 标记测试 21
2.4 断言 22
2.5 假设 26
2.6 JUnit 5的依赖注入 28
2.7 重复测试 30
2.8 参数化测试 32
2.9 动态测试 35
2.10 使用Hamcrest 匹配器 37
2.11 小结 41
第3章 JUnit的体系结构 42
3.1 软件体系结构的概念和重要性 42
3.2 JUnit 4的体系结构 44
3.3 JUnit 5的体系结构 52
3.4 小结 56
第4章 从JUnit 4向JUnit 5迁移 57
4.1 从JUnit 4向JUnit 5跨越 57
4.2 所需的依赖项 58
4.3 注解、类和方法 60
4.4 小结 78
第5章 软件测试原则 79
5.1 单元测试的必要性 79
5.2 测试类型 83
5.3 黑盒测试和白盒测试的对比 86
5.4 小结 88
第二部分 不同的测试策略 89
第6章 测试质量 90
6.1 测试覆盖率度量 90
6.2 编写易于测试的代码 95
6.3 测试驱动开发 103
6.4 行为驱动开发 105
6.5 突变测试 105
6.6 开发周期中的测试 106
6.7 小结 109
第7章 用stub进行粗粒度测试 110
7.1 stub简介 111
7.2 用stub测试一个HTTP连接 112
7.3 用stub替换服务器资源 116
7.4 替换连接 119
7.5 小结 123
第8章 用mock object进行测试 124
8.1 mock object简介 124
8.2 用mock object进行单元测试 125
8.3 用mock object进行重构 128
8.4 模拟HTTP连接 132
8.5 把mocks用作特洛伊木马 138
8.6 mock框架简介 140
8.7 小结 152
第9章 容器内测试 153
9.1 标准单元测试的局限性 153
9.2 mock object解决方法 154
9.3 容器内测试的步骤 156
9.4 stub、mock object和容器内测试的对比 157
9.5 用Arquillian进行测试 160
9.6 小结 167
第三部分 运用JUnit 5及其他工具 168
第10章 在Maven 3中运行JUnit测试 169
10.1 建立Maven项目 169
10.2 使用Maven插件 172
10.3 集成所有 176
10.4 Maven的挑战性 181
10.5 小结 181
第11章 在Gradle 6中运行JUnit测试 182
11.1 Gradle简介 182
11.2 创建Gradle项目 184
11.3 使用Gradle插件 188
11.4 从头开始创建Gradle项目,再用JUnit 5测试 188
11.5 比较Gradle和Maven 192
11.6 小结 193
第12章 IDE对JUnit 5的支持 194
12.1 JUnit 5与IntelliJ IDEA集成 195
12.2 JUnit 5与Eclipse集成 200
12.3 JUnit 5与NetBeans集成 204
12.4 JUnit 5与IntelliJ IDEA、Eclipse和NetBeans集成的比较 209
12.5 小结 209
第13章 JUnit 5的持续集成 210
13.1 持续集成测试 210
13.2 Jenkins简介 212
13.3 团队实践持续集成 215
13.4 配置Jenkins 220
13.5 在CI环境中处理任务 223
13.6 小结 228
第四部分 使用现代框架和JUnit 229
第14章 JUnit 5扩展模型 230
14.1 JUnit 5扩展模型简介 230
14.2 创建JUnit 5扩展 231
14.3 使用可用的扩展点编写JUnit 5测试 234
14.4 小结 245
第15章 表示层测试 246
15.1 选择测试框架 247
15.2 HtmlUnit简介 247
15.3 编写HtmlUnit测试 249
15.4 Selenium简介 258
15.5 编写Selenium测试 259
15.6 HtmlUnit与Selenium的对比 272
15.7 小结 272
第16章 Spring应用程序测试 274
16.1 Spring框架简介 274
16.2 依赖注入简介 275
16.3 构建和测试Spring应用程序 280
16.4 为JUnit Jupiter使用SpringExtension 285
16.5 添加新特性并使用JUnit 5测试 287
16.6 小结 293
第17章 Spring Boot应用程序测试 294
17.1 Spring Boot简介 294
17.2 用Spring Initializr创建项目 295
17.3 将Spring应用迁移到Spring Boot中 297
17.4 为Spring Boot实现特定测试的配置 300
17.5 在Spring Boot应用中添加和测试新特性 302
17.6 小结 306
第18章 REST API测试 308
18.1 REST应用程序简介 308
18.2 创建RESTful API来管理实体 309
18.3 创建RESTful API来管理两个相关实体 316
18.4 测试RESTful API 323
18.5 小结 327
第19章 数据库应用程序测试 328
19.1 数据库单元测试阻抗不匹配 328
19.2 测试JDBC应用程序 330
19.3 测试Spring JDBC应用程序 339
19.4 测试Hibernate应用程序 346
19.5 测试Spring Hibernate应用程序 351
19.6 测试数据库应用程序的方法比较 357
19.7 小结 358
第五部分 用JUnit 5开发应用程序 360
第20章 用JUnit 5进行测试驱动开发 361
20.1 TDD的主要概念 361
20.2 航班管理应用程序 362
20.3 将航班管理应用程序迁移到TDD 367
20.4 重构航班管理应用程序 371
20.5 使用TDD引入新特性 375
20.6 小结 386
第21章 使用JUnit 5进行行为驱动开发 387
21.1 行为驱动开发简介 387
21.2 使用Cucumber和JUnit 5操作BDD风格 390
21.3 使用JBehave和JUnit 5操作BDD风格 406
21.4 Cucumber与Jbehave的比较 419
21.5 小结 419
第22章 用JUnit 5实现测试金字塔策略 420
22.1 软件测试的层次 420
22.2 单元测试:隔离运行的基本组件 421
22.3 集成测试:单元组合 431
22.4 系统测试:考查完整的 软件 438
22.5 验收测试:软件满足业务需求 448
22.6 小结 457
附录A Maven 458
A.1 约定优于配置 458
A.2 强依赖管理 458
A.3 Maven的构建生命周期 459
A.4 基于插件的体系结构 461
A.5 Maven的项目对象模型 462
A.6 安装Maven 463
附录B Gradle 464
B.1 安装Gradle 464
B.2 创建Gradle任务 466
附录C IDE 469
C.1 安装IntelliJ IDEA 469
C.2 安装Eclipse 470
C.3 安装NetBeans 471
附录D Jenkins 472
点击下载