编辑推荐
Java开发必读!
从使用TDD开始,改善设计和代码的质量、简化重构工作、提高代码覆盖率。
-卓有成效地践行测试驱动开发所需的工具和框架
-高效执行“红灯-绿灯-重构”过程
-如何以独立于其他代码的方式进行有效的单元测试
-使用各种技巧设计简单而易于维护的代码
-使用模拟框架和技巧轻松编写测试并快速执行
-结合行为驱动开发和单元测试进行TDD
-重构遗留代码
内容简介
《Java测试驱动开发》介绍如何将各种TDD俱佳实践应用于Java开发,主要内容包括:用Java语言进行TDD会用到的各种工具和框架,所需环境搭建;通过实际应用程序,展示TDD优点及开发中应注意的主要问题;TDD是如何通过模拟内部和外部依赖来提升速度的;如何重构既有应用程序;详细介绍所有TDD俱佳实践。 《Java测试驱动开发》适合所有Java开发人员,也适合用其他语言编程的程序员了解TDD。
作者简介
Viktor Farcic 资-深软件架构师,Docker船长,Java开发专家,热衷于测试驱动开发、行为驱动开发、持续集成、持续交付和持续部署。 他把多年经验都分享在了博客上,深受读者欢迎:http://TechnologyConversations.com。
Alex Garcia 资-深Java程序员,敏捷实践拥趸,热衷于学习新语言、新范式、新框架。
目录
目录第1章为何要关心测试驱动开发11.1为何要使用TDD11.1.1理解TDD31.1.2红灯绿灯重构31.1.3速度是关键41.1.4TDD并非测试方法41.2测试51.2.1黑盒测试51.2.2白盒测试51.2.3质量检查和质量保证的差别61.2.4更好的测试61.3模拟71.4可执行的文档71.5无需调试91.6小结9第2章工具、框架和环境102.1Git102.2虚拟机112.2.1Vagrant112.2.2Docker132.3构建工具142.4集成开发环境152.5单元测试框架162.5.1JUnit172.5.2TestNG192.6Hamcrest和AssertJ212.6.1Hamcrest212.6.2AssertJ222.7代码覆盖率工具232.8模拟框架242.8.1Mockito262.8.2EasyMock282.8.3PowerMock292.9用户界面测试292.9.1Web测试框架302.9.2Selenium302.9.3Selenide312.10行为驱动开发332.10.1JBehave332.10.2Cucumber352.11小结37第3章红灯绿灯重构——从失败到成功再到完美383.1使用Gradle和JUnit搭建环境393.2“红灯绿灯重构”过程413.2.1编写一个测试413.2.2运行所有测试并确认最后一个未通过413.2.3编写实现代码423.2.4运行所有测试423.2.5重构423.2.6重复433.3“井字游戏”的需求433.4开发“井字游戏”433.4.1需求1443.4.2需求2493.4.3需求3523.4.4需求4573.5代码覆盖率583.6更多练习593.7小结60第4章单元测试——专注于当下而非过往614.1单元测试614.1.1何为单元测试624.1.2为何要进行单元测试624.1.3代码重构624.1.4为何不只使用单元测试634.2TDD中的单元测试644.3TestNG644.3.1注解@Test644.3.2注解@BeforeSuite、@Be-foreTest、@BeforeGroups、@AfterGroups、@AfterTest和@AfterSuite654.3.3注解@BeforeClass和@AfterClass654.3.4注解@BeforeMethod和@AfterMethod664.3.5注解参数@Test(enable=false)664.3.6注解参数@Test(expected-Exceptions=SomeClass.class)664.3.7TestNG和JUnit差别小结664.4“遥控军舰”的需求664.5开发“遥控军舰”674.5.1创建项目674.5.2辅助类694.5.3需求1694.5.4需求2724.5.5需求3744.5.6需求4754.5.7需求5774.5.8需求6804.6小结81第5章设计——难以测试说明设计不佳825.1为何要关心设计825.2Connect4845.3完成Connect4实现后再测试855.3.1需求1855.3.2需求2865.3.3需求3875.3.4需求4885.3.5需求5895.3.6需求6895.3.7需求7905.3.8需求8915.4使用TDD实现Connect4925.4.1Hamcrest925.4.2需求1935.4.3需求2935.4.4需求3965.4.5需求4975.4.6需求5995.4.7需求6995.4.8需求71005.4.9需求81015.5小结103第6章模拟——消除外部依赖1046.1模拟1046.1.1为何使用模拟对象1056.1.2术语1066.1.3模拟对象1066.2Mockito1076.3“井字游戏”第二版的需求1076.4开发“井字游戏”第二版1076.4.1需求11086.4.2需求21186.5集成测试1246.5.1分离测试1246.5.2集成测试1256.6小结127第7章BDD——与整个团队协作1287.1不同规范1287.1.1文档1297.1.2供程序员使用的文档1297.1.3供非程序员使用的文档1307.2行为驱动开发1307.2.1叙述1317.2.2场景1327.3书店应用程序的BDD故事1337.4JBehave1367.4.1JBehave运行器1367.4.2待定步骤1377.4.3Selenium和Selenide1387.4.4JBehave步骤1397.4.5最后的验证1447.5小结146第8章重构遗留代码——使其重焕青春1478.1遗留代码1478.2编码套路1568.2.1遗留代码处理套路1578.2.2描述1578.2.3技术说明1578.2.4添加新功能1578.2.5黑盒测试还是尖峰冲击测试1578.2.6初步调查1588.2.7应用遗留代码修改算法1618.2.8提取并重写调用1668.2.9消除状态的“基本类型偏执”坏味1708.3小结173第9章功能开关——将未完成的功能部署到生成环境1759.1持续集成、持续交付和持续部署1759.2功能开关1779.3功能开关示例1789.3.1实现fibonacci服务1819.3.2使用模版引擎1849.4小结187第10章综述18810.1TDD概要18810.2最佳实践18910.2.1命名约定18910.2.2流程19110.2.3开发实践19210.2.4工具19510.3这只是开始19610.4这并非终点196
Java测试驱动开发 下载 mobi epub pdf txt 电子书 格式