構建高質量軟件:持續集成與持續交付系統實踐

心蓝

  • 出版商: 機械工業
  • 出版日期: 2021-09-22
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 364
  • 裝訂: 平裝
  • ISBN: 7111690206
  • ISBN-13: 9787111690207
  • 相關分類: CI/CD
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

本書包含四大部分,共10 章。
第 一部分(第1~4 章)主要圍繞如何提高軟件的開髮質量和效率展開,
詳細講述了單元測試的常用工具和實踐方法,並展開闡述了持續集成、持續交付、持續部署等概念;
第二部分(第5~6 章)詳細講解了兩個常用的mock 工具——Mockito 和Powermock,
通過實例詳盡地講解了它們的語法規則和使用場景,
目的是讓開發者在不修改軟件源代碼和程序結構的前提下盡可能確保軟件具備可測試性;
第三部分(第7~8 章)為讀者詳細講述了兩個行為驅動開發工具(功能測試)Concordion 和Cucumber 的使用,
這兩個工具可以幫助我們很好地完成功能測試、驗收測試、回歸測試等工作;
第四部分(第9~10 章)綜合前面三部分的知識點,並引入代碼風格檢查、靜態代碼分析、
第三方依賴安全性檢查、企業內部私服的原理和搭建、Ansible 自動化軟件部署工具、
Jenkins Pipeline 等知識,以幫助讀者構建了一個完整的CI/CD 流程。

作者簡介

心藍,某外資銀行電子渠道高級開監、技術專家,有超過十年的系統設計、一線開發經驗。
對團隊管理、項目管理有自己獨到的見解。擁有多年的移動網關通訊研發經驗,以及移動互聯網開發與產品運營、雲計算、B2C電子商台開發經驗,熱衷於技術分享,目前已錄製20餘套技術,在互聯網上廣泛傳播。
所著圖括《Java高並發編程詳解:多線程與架構設計》、《Java高並發編程詳解:深入理解並發核心庫》等。

目錄大綱

前言
第壹部分 提高軟件的開髮質量及開發效率
第壹章 單元測試與TDD3
1.1 單元測試的定義3
1.2 單元測試的好處5
1.3 單元測試的FIRST原則6
1.4 JUnit*佳實踐10
1.5 測試驅動開發14
1.5.1 紅–綠–重構15
1.5.2 TDD工作流程16
1.5.3 TDD實踐17
1.6 本章總結26

第2章 Hamcrest:優雅強大的對象匹配器27
2.1 Hamcrest概述27
2.2 Hamcrest對象匹配器詳解34
2.2.1 org.hamcrest.core34
2.2.2 org.hamcrest.beans37
2.2.3 org.hamcrest.collection38
2.2.4 org.hamcrest.number41
2.2.5 org.hamcrest.text42
2.2.6 org.hamcrest.xml43
2.3 自定義對象匹配器44
2.4 REST-Assured的使用47
2.5 本章總結51

第3章 Git及Git工作流程52
3.1 快速上手Git53
3.2 文件狀態生命週期及Git中的對象56
3.2.1 文件狀態生命週期56
3.2.2 Git中的對象59
3.3 Git與本地倉庫64
3.3.1 add與commit命令64
3.3.2 log命令65
3.3.3 diff與blame命令65
3.3.4 Git的分支及操作66
3.3.5 stash命令69
3.3.6 reset命令70
3.3.7 標籤的操作73
3.3.8 “.gitignore”文件的規則74
3.4 Git與遠程倉庫75
3.4.1 遠程倉庫的管理76
3.4.2 遠程倉庫的操作77
3.4.3 本地倉庫與遠程倉庫的其他協同操作78
3.5 Git的配置和別名操作81
3.5.1 Git的基本配置81
3.5.2 Git的別名82
3.6 Git工作流程82
3.7 本章總結85

第4章 持續集成與持續交付86
4.1 什麼是持續集成87
4.2 什麼是持續交付89
4.3 什麼是持續部署91
4.4 本章總結94

第2部分 mock:構造測試對象的替身
第5章 Mockito:熱門的mock工具97
5.1 mock技術97
5.2 快速上手Mockito98
5.2.1 引入Mockito98
5.2.2 測試用戶登錄99
5.3 創建mock“替身”對象實例104
5.3.1 四種mock方式104
5.3.2 深度mock108
5.4 Stubbing語法詳解111
5.4.1 when...thenReturn和doReturn...when語法111
5.4.2 doNothing...when語法112
5.4.3 when...thenThrow和doThrow...when語法115
5.4.4 when...thenAnswer和doAnswer...when語法117
5.4.5 多值返回的Stubbing語法117
5.4.6 級聯風格的Stubbing語法118
5.4.7 when...thenCallRealMethod和doCallRealMethod...when語法119
5.5 Spying詳解120
5.6 Argument對象匹配器詳解123
5.6.1 Argument對象匹配器在Stubbing語法中的使用123
5.6.2 自定義Argument對象匹配器125
5.6.3 集成Hamcrest中的對象匹配器126
5.7 Mockito Verify與ArgumentsCaptor127
5.7.1 Mockito Verify操作127
5.7.2 VerificationMode詳解130
5.7.3 ArgumentCaptor與@Captor132
5.8 InjectMocks134
5.9 Mockito對BDD風格的支持135
5.10 Mockito Inline136
5.11 本章總結138

第6章 Powermock詳解140
6.1 快速入門Powermock141
6.1.1 為什麼需要Powermock141
6.1.2 搭建Powermock環境141
6.1.3 Powermock入門143
6.2 Powermock如何通過mock操作局部變量145
6.3 Powermock如何通過mock操作靜態方法148
6.4 Powermock如何通過mock操作final修飾的類151
6.5 Powermock如何通過mock操作私有方法152
6.6 Powermock中的Spying154
6.7 Powermock與JaCoCo155
6.8 本章總結160

第三部分 行為驅動開發
第7章 Concordion:測試即文檔163
7.1 Concordion的開發流程164
7.2 搭建Concordion環境174
7.2.1 搭建Concordion基礎環境174
7.2.2 Concordion與Maven進行集成176
7.3 Concordion的指令詳解178
7.4 在Specification文檔中處理Java返回的結果183
7.4.1 簡單的數據類型183
7.4.2 複雜的數據類型188
7.5 table和list中的指令191
7.5.1 使用table標籤批量執行測試用例191
7.5.2 使用list標籤批量執行測試用例193
7.6 拾遺補漏194
7.7 本章總結196