4.23文创礼盒,买2个减5元 读书月福利
欢迎光临中图网 请 | 注册

JUnit实战(第3版)

出版社:人民邮电出版社出版时间:2023-06-01
开本: 16开 页数: 496
中 图 价:¥103.5(7.4折) 定价  ¥139.8 登录后可看到会员价
加入购物车 收藏
运费6元,满69元免运费
?快递不能达地区使用邮政小包,运费14元起
云南、广西、海南、新疆、青海、西藏六省,部分地区快递不可达
本类五星书更多>

JUnit实战(第3版) 版权信息

  • ISBN:9787115578532
  • 条形码:9787115578532 ; 978-7-115-57853-2
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 所属分类:>>

JUnit实战(第3版) 本书特色

1.JUnit 5实战类图书。涵盖从JUnit 4向JUnit 5迁移、软件测试原则等内容,让读者深入了解JUnit框架。

2.细致讲解Java开发人员进行单元测试和集成测试的实用框架,有效测试自动化、测试驱动开发和行为驱动开发。

4.大量真实世界中的应用程序案例,包括Spring、Spring Boot 以及 REST API 测试,更好地掌握如何在实际项目中使用JUnit进行测试。

5.将 JUnit 5 与 Maven/Gradle 结合起来使用,提供大量实用的建议和技巧,帮助读者在项目中快速而有效地使用JUnit框架。

JUnit实战(第3版) 内容简介

本书全面介绍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开发人员阅读。本书还可作为高等院校学生“软件测试”课程的参考用书。

JUnit实战(第3版) 目录

第 一部分 JUnit



第 1章 JUnit起步 3

1.1 证明程序的可运行性 4

1.2 从零开始 5

1.2.1 单元测试框架的规则 8

1.2.2 添加单元测试 8

1.3 安装JUnit 9

1.4 使用JUnit测试 11

1.5 小结 13

第 2章 探索JUnit的核心 14

2.1 核心注解 15

2.1.1 @DisplayName注解 17

2.1.2 @Disabled注解 18

2.2 嵌套测试 20

2.3 标记测试 21

2.4 断言 22

2.5 假设 26

2.6 JUnit 5的依赖注入 28

2.6.1 TestInfoParameterResolver 28

2.6.2 TestReporterParameterResolver 29

2.6.3 RepetitionInfoParameterResolver 30

2.7 重复测试 30

2.8 参数化测试 32

2.9 动态测试 35

2.10 使用Hamcrest 匹配器 37

2.11 小结 41

第3章 JUnit的体系结构 42

3.1 软件体系结构的概念和重要性 42

3.1.1 故事一:电话簿 43

3.1.2 故事二:运动鞋制造商 43

3.2 JUnit 4的体系结构 44

3.2.1 JUnit 4模块化 44

3.2.2 JUnit 4运行器 45

3.2.3 JUnit 4规则 47

3.2.4 JUnit 4体系结构的缺点 52

3.3 JUnit 5的体系结构 52

3.3.1 JUnit 5模块化 52

3.3.2 JUnit Platform 53

3.3.3 JUnit Jupiter 53

3.3.4 JUnit Vintage 54

3.3.5 JUnit 5体系结构的全景 54

3.4 小结 56



第4章 从JUnit 4向JUnit 5迁移 57

4.1 从JUnit 4向JUnit 5跨越 57

4.2 所需的依赖项 58

4.3 注解、类和方法 60

4.3.1 等价的注解、类和方法 60

4.3.2 分类和标记 64

4.3.3 迁移Hamcrest匹配器功能 69

4.3.4 规则与扩展模型 71

4.3.5 自定义规则 74

4.4 小结 78

第5章 软件测试原则 79

5.1 单元测试的必要性 79

5.1.1 带来更高的测试覆盖率 80

5.1.2 提高团队的工作效率 80

5.1.3 检测出衰退迹象和减少调试次数 80

5.1.4 自信地重构 80

5.1.5 改进实现 82

5.1.6 文档化预期行为 82

5.1.7 启用代码覆盖率和其他指标 83

5.2 测试类型 83

5.2.1 单元测试 84

5.2.2 集成测试 84

5.2.3 系统测试 85

5.2.4 验收测试 85

5.3 黑盒测试和白盒测试的对比 86

5.3.1 黑盒测试 86

5.3.2 白盒测试 86

5.3.3 黑盒测试和白盒测试的优点和缺点 87

5.4 小结 88



第二部分 不同的测试策略





第6章 测试质量 91

6.1 测试覆盖率度量 91

6.1.1 测试覆盖率简介 92

6.1.2 代码覆盖率度量工具 93

6.2 编写易于测试的代码 96

6.2.1 理解公共API契约 97

6.2.2 减少依赖 97

6.2.3 创建简单的构造方法 98

6.2.4 遵循迪米特法则 99

6.2.5 避开隐藏的依赖项和全局状态 100

6.2.6 优先使用泛型方法 101

6.2.7 组合优于继承 102

6.2.8 多态优于条件 102

6.3 测试驱动开发 104

6.3.1 调整开发周期 104

6.3.2 TDD的两个核心步骤 105

6.4 行为驱动开发 106

6.5 突变测试 106

6.6 开发周期中的测试 107

6.7 小结 110

第7章 用stub进行粗粒度测试 111

7.1 stub简介 112

7.2 用stub测试一个HTTP连接 113

7.2.1 选择stub的使用方案 115

7.2.2 用Jetty充当嵌入式服务器 115

7.3 用stub替换服务器资源 117

7.3.1 构建第 一个stub测试 117

7.3.2 回顾第 一个stub测试 120

7.4 替换连接 120

7.4.1 创建自定义的URL协议处理器 121

7.4.2 创建一个JDK的HttpURLConnection stub 122

7.4.3 运行测试 123

7.5 小结 124

第8章 用mock object进行测试 125

8.1 mock object简介 125

8.2 用mock object进行单元测试 126

8.3 用mock object进行重构 129

8.3.1 重构示例 130

8.3.2 重构方面的考虑 131

8.4 模拟HTTP连接 133

8.4.1 mock object的定义 133

8.4.2 示例方法的测试 134

8.4.3 第 一个尝试:简单的方法重构技巧 135

8.4.4 第二个尝试:使用类工厂进行重构 137

8.5 把mocks用作特洛伊木马 139

8.6 mock框架简介 141

8.6.1 使用EasyMock 142

8.6.2 使用JMock 146

8.6.3 使用Mockito 150

8.7 小结 153

第9章 容器内测试 154

9.1 标准单元测试的局限性 154

9.2 mock object解决方法 155

9.3 容器内测试的步骤 157

9.3.1 实现策略 157

9.3.2 容器内测试框架 158

9.4 stub、mock object和容器内测试的对比 158

9.4.1 对stub的评价 159

9.4.2 对mock object的评价 159

9.4.3 对容器内测试的评价 160

9.5 用Arquillian进行测试 161

9.6 小结 168



第三部分 运用JUnit 5及其他工具





第 10章 在Maven 3中运行JUnit测试 171

10.1 建立Maven项目 171

10.2 使用Maven插件 174

10.2.1 Maven的Compiler插件 175

10.2.2 Maven的Surefire插件 176

10.2.3 用Maven生成HTML格式的JUnit报告 178

10.3 集成所有 178

10.4 Maven的挑战性 183

10.5 小结 183

第 11章 在Gradle 6中运行JUnit测试 184

11.1 Gradle简介 184

11.2 创建Gradle项目 186

11.3 使用Gradle插件 190

11.4 从头开始创建Gradle项目,再用JUnit 5测试 190

11.5 比较Gradle和Maven 194

11.6 小结 195

第 12章 IDE对JUnit 5的支持 196

12.1 JUnit 5与IntelliJ IDEA集成 197

12.2 JUnit 5与Eclipse集成 202

12.3 JUnit 5与NetBeans集成 206

12.4 JUnit 5与IntelliJ IDEA、Eclipse和NetBeans集成的比较 211

12.5 小结 211

第 13章 JUnit 5的持续集成 212

13.1 持续集成测试 212

13.2 Jenkins简介 214

13.3 团队实践持续集成 217

13.4 配置Jenkins 222

13.5 在CI环境中处理任务 225

13.6 小结 230



第四部分 使用现代框架和JUnit 5





第 14章 JUnit 5扩展模型 233

14.1 JUnit 5扩展模型简介 233

14.2 创建JUnit 5扩展 234

14.3 使用可用的扩展点编写JUnit 5测试 237

14.3.1 将乘客信息持久化到数据库中 237

14.3.2 检查乘客的性 246

14.4 小结 248

第 15章 表示层测试 249

15.1 选择测试框架 250

15.2 HtmlUnit简介 250

15.3 编写HtmlUnit测试 252

15.3.1 HTML断言 252

15.3.2 对特定的Web浏览器进行测试 252

15.3.3 对多个Web浏览器进行测试 253

15.3.4 创建独立的测试 254

15.3.5 测试表单 256

15.3.6 测试JavaScript 257

15.4 Selenium简介 261

15.5 编写Selenium测试 262

15.5.1 对特定的Web浏览器进行测试 264

15.5.2 使用Web浏览器测试导航 265

15.5.3 测试多个Web浏览器 266

15.5.4 用不同的Web浏览器测试Google搜索和导航 268

15.5.5 测试网站的身份验证 270

15.6 HtmlUnit与Selenium的对比 275

15.7 小结 275

第 16章 Spring应用程序测试 277

16.1 Spring框架简介 277

16.2 依赖注入简介 278

16.3 构建和测试Spring应用程序 283

16.3.1 以编程方式创建Spring上下文 283

16.3.2 使用Spring TestContext框架 286

16.4 为JUnit Jupiter使用SpringExtension 288

16.5 添加新特性并使用JUnit 5测试 290

16.6 小结 296

第 17章 Spring Boot应用程序测试 297

17.1 Spring Boot简介 297

17.2 用Spring Initializr创建项目 298

17.3 将Spring应用迁移到Spring Boot中 300

17.4 为Spring Boot实现特定测试的配置 303

17.5 在Spring Boot应用中添加和测试新特性 305

17.6 小结 309

第 18章 REST API测试 311

18.1 REST应用程序简介 311

18.2 创建RESTful API来管理实体 312

18.3 创建RESTful API来管理两个相关实体 319

18.4 测试RESTful API 326

18.5 小结 330

第 19章 数据库应用程序测试 331

19.1 数据库单元测试阻抗不匹配 331

19.1.1 单元测试必须运行独立的代码 332

19.1.2 单元测试必须易于编写和运行 332

19.1.3 单元测试必须快速运行 333

19.2 测试JDBC应用程序 333

19.3 测试Spring JDBC应用程序 342

19.4 测试Hibernate应用程序 349

19.5 测试Spring Hibernate应用程序 354

19.6 测试数据库应用程序的方法比较 360

19.7 小结 361



第五部分 用JUnit 5开发应用程序





第 20章 用JUnit 5进行测试驱动开发 365

20.1 TDD的主要概念 365

20.2 航班管理应用程序 366

20.3 将航班管理应用程序迁移到TDD 371

20.4 重构航班管理应用程序 375

20.5 使用TDD引入新特性 379

20.5.1 增加一种高级航班 379

20.5.2 同一名乘客只能添加一次 387

20.6 小结 390

第 21章 使用JUnit 5进行行为驱动开发 391

21.1 行为驱动开发简介 391

21.1.1 一种新特性的引入 392

21.1.2 从需求分析到验收标准 392

21.1.3 BDD的优点和挑战性 393

21.2 使用Cucumber和JUnit 5操作BDD风格 394

21.2.1 Cucumber简介 395

21.2.2 将TDD特性迁移到Cucumber中 396

21.2.3 使用Cucumber增加一个新功能 403

21.3 使用JBehave和JUnit 5操作BDD风格 410

21.3.1 JBehave简介 410

21.3.2 将TDD特性迁移到JBehave中 410

21.3.3 使用JBehave增加一个新功能 416

21.4 Cucumber与Jbehave的比较 423

21.5 小结 423

第 22章 用JUnit 5实现测试金字塔策略 424

22.1 软件测试的层次 424

22.2 单元测试:隔离运行的基本组件 425

22.3 集成测试:单元组合 435

22.4 系统测试:考查完整的 软件 442

22.4.1 使用模拟的外部依赖项进行测试 443

22.4.2 使用部分实现的外部依赖项进行测试 447

22.4.3 使用完全实现的外部依赖项进行测试 449

22.5 验收测试:软件满足业务需求 452

22.6 小结 461

附录A  Maven 462

A.1 约定优于配置 462

A.2 强依赖管理 462

A.3 Maven的构建生命周期 463

A.4 基于插件的体系结构 465

A.5 Maven的项目对象模型 466

A.6 安装Maven 467

附录B  Gradle 468

B.1 安装Gradle 468

B.2 创建Gradle任务 470

附录C  IDE 473

C.1 安装IntelliJ IDEA 473

C.2 安装Eclipse 474

C.3 安装NetBeans 475

附录D  Jenkins 476



展开全部

JUnit实战(第3版) 作者简介

克特林·图多塞(Catalin Tudose),拥有计算机科学专业的博士学位,担任过 Java 高级开发员和技术团队带头人,有超过 15年的 Java 开发经验。

商品评论(0条)
暂无评论……
书友推荐
本类畅销
编辑推荐
返回顶部
中图网
在线客服