《編寫可測試的JavaScript代碼》
基本信息
做者: [美] Mark Ethan Trostler 託斯勒 著
譯者: 徐濤
出版社:人民郵電出版社
ISBN:9787115373373
上架時間:2015-1-24
出版日期:2015 年2月
開本:16開
頁碼:247
版次:1-1前端
![]() |
內容簡介
《編寫可測試的JavaScript代碼》
JavaScript專業開發人員必須具有的一個技能是可以編寫可測試的代碼。
本書的目標是教授如何爲客戶端和服務器編寫和維護可測試的JavaScript代碼。全書共8章。首先介紹了什麼是可測試的代碼,而後分別從代碼複雜度、架構、單元測試、代碼覆蓋率、集成測試、性能測試、負載測試、調試和自動化等角度詳細介紹。書中豐富的示例可以幫助讀者從頭開始養成好的代碼編寫習慣,提高測試效率及代碼的可維護性。
本書的做者曾前後在YouTube、Yahoo!以及Google等公司從事前端開發及測試相關工做,具備豐富的經驗。本書主要針對那些想成爲JavaScript專業開發人員的人;也適合初中級水平或者專家級別的開發人員參考閱讀。
目錄
第1章 可測試的JavaScript 1
1.1 現有技術 2
1.1.1 敏捷開發 3
1.1.2 測試驅動開發 4
1.1.3 行爲驅動開發 5
1.1.4 哪一種方式最好? 6
1.2 代碼是讓人用的 7
1.2.1 爲什麼要編寫可測試的代碼 7
1.2.2 什麼是可測試的代碼 9
1.2.3 如何編寫可測試的代碼 10
1.3 卓越的應用程序代碼 11
1.3.1 測試 11
1.3.2 調試 12
1.4 小結 12
第2章 複雜度 13
2.1 代碼大小 14
2.2 JSLint 20
2.3 圈複雜度 24
2.4 重用 28
2.5 扇出 30
2.6 扇入 40
2.7 耦合 40
2.7.1 內容耦合 41
2.7.2 公共耦合 41
2.7.3 控制耦合 41
2.7.4 印記耦合 42
2.7.5 數據耦合 42
2.7.6 無耦合 42
2.7.7 實例化 42
2.8 耦合性度量 43
2.9 現實中的耦合 43
2.9.1 測試耦合代碼 46
2.10 依賴注入 47
2.11 註釋 50
2.11.1 YUIDoc 50
2.11.2 JSDoc 52
2.11.3 Docco/Rocco 54
2.12 人工測試 56
2.13 小結 58
第3章 基於事件的架構 59
3.1 基於事件編程的好處 59
3.2 事件集線器 60
3.2.1 使用事件集線器 62
3.2.2 事件的響應 67
3.2.3 基於事件的架構與MVC架構 69
3.2.4 基於事件的架構與面向對象編程 69
3.2.5 基於事件的架構與軟件即服務 70
3.3 Web應用程序 70
3.4 測試基於事件的架構 71
3.5 基於事件架構的說明 75
3.5.1 可伸縮性 75
3.5.2 廣播 75
3.5.3 運行時檢測 75
3.5.4 安全性 76
3.5.5 狀態 76
3.6 更智能的集線器:事件交換機 77
3.6.1 部署 77
3.6.2 一種實現 79
3.6.3 會話 82
3.6.4 可擴展性 82
3.7 小結 83
第4章 單元測試 84
4.1 單元測試框架 84
4.2 開始編寫測試 85
4.3 編寫好的單元測試 87
4.3.1 隔離 88
4.3.2 範圍 88
4.3.3 定義函數 89
4.3.4 正向測試 91
4.3.5 負向測試 91
4.3.6 代碼覆蓋率 92
4.4 真實場景測試 92
4.4.1 依賴項 92
4.4.2 異步測試 95
4.5 運行客戶端JavaScript單元測試 97
4.5.1 PhantomJS 97
4.5.2 Selenium 102
4.6 運行服務端JavaScript單元測試 109
4.6.1 Jasmine 110
4.7 小結 116
第5章 代碼覆蓋率 117
5.1 覆蓋率基礎理論 117
5.2 代碼覆蓋率數據 120
5.3 實際例子 121
5.3.1 轉換instrumented文件 121
5.3.2 Instrumented文件剖析 122
5.4 練習/部署 123
5.4.1 客戶端JavaScript 123
5.4.2 服務端JavaScript 125
5.5 持久化覆蓋率信息 129
5.5.1 單元測試 129
5.5.2 集成測 130
5.6 生成輸出 131
5.7 聚合 132
5.8 隱藏的文件 134
5.9 覆蓋率目標 137
5.10 小結 138
第6章 集成測試、性能測試、負載測試 140
6.1 集成測試 140
6.1.1 Selenium 141
6.1.2 CasperJS 147
6.2 性能測試 150
6.2.1 生成HAR文件 150
6.2.2 查看HAR文件 156
6.2.3 瀏覽器性能測試 158
6.3 負載測試 160
6.3.1 瀏覽器負載測試 161
6.4 跟蹤資源利用率 165
6.4.1 客戶端跟蹤 167
6.4.2 服務端跟蹤 173
6.5 小結 176
第7章 調試 177
7.1 瀏覽器內調試 177
7.1.1 Firefox 179
7.1.2 Chrome 182
7.1.3 Safari 185
7.1.4 Internet Explorer 187
7.2 Node.js調試 187
7.3 遠程調試 190
7.3.1 Chrome 191
7.3.2 PhantomJS 196
7.3.3 Firefox 197
7.4 移動調試 198
7.4.1 Android 4 198
7.4.2 iOS 6 200
7.4.3 Adobe Edge Inspect 202
7.4.4 其餘方面的移動調試選擇 205
7.5 生產環境調試 206
7.5.1 最小化代碼 206
7.5.2 Source Map 207
7.6 小結 212
第8章 自動化 213
8.1 自動化什麼內容 213
8.2 什麼時候進行自動化 213
8.3 如何進行自動化 214
8.3.1 含有持續集成的自動化 214
8.3.2 開發環境自動化 215
8.3.3 構建環境自動化 225
8.3.4 部署 245
8.4 小結 246編程