TOP
0
0
【簡體曬書節】 單本79折,5本7折,優惠只到5/31,點擊此處看更多!
提醒您!您有折價券未完成領取,請盡速登入以保存至您的帳號。
JavaScript測試驅動開發(簡體書)
滿額折

JavaScript測試驅動開發(簡體書)

商品資訊

人民幣定價:79 元
定價
:NT$ 474 元
優惠價
87412
領券後再享88折起
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:12 點
相關商品
商品簡介
作者簡介
目次

商品簡介

JavaScript已經成爲使用最廣泛的語言之一,它強大且高度靈活,但同時也頗具風險,所以應該用更出色的開發實踐來支持。自動化測試和持續集成就是很好的方法,可以降低JavaScript帶來的風險。本書介紹JavaScript自動化測試及其相關實踐,主體內容包括兩部分:第一部分涵蓋自動化測試的基礎,介紹如何爲同步函數和異步函數編寫測試,以及當代碼包含複雜的依賴關係時如何實現自動化測試;第二部分通過一個測試驅動開發的示例,讓讀者能够運用在第一部分所學的內容,爲客戶端和服務器端編寫自動化測試。本書在幫助讀者學習和研究測試工具和技術的同時,還會介紹一些軟件設計原則,有助于實現輕量級設計,幷得到可維護的代碼。

作者簡介

【作者簡介】
Venkat Subramaniam

博士,Agile Developer公司創始人,敏捷開發先驅,通過演講、著書、培訓等方式影響了全球數十萬軟件開發人員。另著有《高效程序員的45個習慣:敏捷開發修煉之道》《Scala程序設計:Java虛擬機多核編程實戰》《Groovy程序設計》等書。

【譯者簡介】
毛姝雯

對編程有著濃烈的興趣,iOS開發、Web前端開發、UI設計等領域都有涉足。曾任職於IBM,專注於移動端Web開發。現在已經是一個可愛寶寶的母親。

目次

第1章 自動化測試讓你重獲自由 1
1.1 變更的挑戰 1
1.1.1 變更的成本 1
1.1.2 變更的影響 2
1.2 測試與驗證 2
1.3 採用自動化驗證 3
1.4 為什麼難以驗證 5
1.5 如何實現自動化測試 6
1.6 小結 6
第一部分 創建自動化測試
第2章 測試驅動設計 10
2.1 讓我們開始吧 10
2.1.1 檢查npm和Node.js的安裝 11
2.1.2 創建示例項目 11
2.1.3 創建測試套件和金絲雀測試 12
2.1.4 驗證函數的行為 14
2.1.5 驗證另一個數據 16
2.2 正向測試、反向測試和異常測試 18
2.3 設計服務器端代碼 20
2.3.1 從測試列表開始 20
2.3.2 回文項目 21
2.3.3 編寫正向測試 22
2.3.4 編寫反向測試 26
2.3.5 編寫異常測試 27
2.4 評估服務器端代碼覆蓋率 29
2.5 為測試客戶端代碼做準備 31
2.5.1 切換到客戶端項目 31
2.5.2 配置Karma 33
2.5.3 從金絲雀測試開始 34
2.6 設計客戶端代碼 34
2.7 評估客戶端代碼覆蓋率 37
2.8 小結 38
第3章 異步測試 39
3.1 服務器端回調 39
3.1.1 一次天真的嘗試 40
3.1.2 編寫異步測試 41
3.1.3 編寫一個反向測試 43
3.2 客戶端的回調函數 44
3.3 測試promise 46
3.3.1 對promise的簡單介紹 46
3.3.2 promise異步測試的類型 47
3.3.3 返回promise對象的函數 48
3.3.4 使用done()進行測試 49
3.3.5 返回promise 的測試 . 49
3.3.6 使用chai-as-promised 50
3.3.7 結合eventually和done() 50
3.3.8 為promise編寫反向測試 51
3.4 小結 52
第4章 巧妙處理依賴 53
4.1 問題以及spike解決方案 53
4.1.1 轉移到spike項目 53
4.1.2 從spike中獲得見解 54
4.2 模塊化設計 55
4.3 儘量分離依賴 56
4.3.1 結束spike,準備自動化測試 56
4.3.2 測試creatURL 57
4.4 使用測試替身 59
4.5 依賴注入 61
4.6 交互測試 62
4.7 使用Sinon清理測試代碼 64
4.7.1 安裝Sinon 65
4.7.2 初探Sinon 65
4.7.3 使用Sinon的mock測試交互 67
4.7.4 使用Sinon的stub測試狀態 68
4.7.5 使用Sinon的spy攔截調用 70
4.8 回顧與繼續 72
4.9 小結 75
* 二部分 真實的自動化測試
第5章 Node.js測試驅動開發 78
5.1 從策略設計開始——適度即可 78
5.2 深入戰略設計——測試優先 79
5.2.1 創建初始測試列表 79
5.2.2 編寫* 一個測試 80
5.2.3 編寫一個正向測試 82
5.3 繼續設計 85
5.3.1 readTickersFile的反向測試 85
5.3.2 設計parseTickers函數 87
5.3.3 設計processTickers函數 88
5.4 創建spike以獲得啟發 89
5.4.1 為getPrice創建spike 89
5.4.2 設計getPrice函數 90
5.5 模塊化以易於測試 93
5.5.1 設計processResponse和processError函數 93
5.5.2 設計processHttpError 95
5.5.3 設計parsePrice和processError 96
5.6 分離關注點 97
5.6.1 設計printReport 98
5.6.2 設計sortData 98
5.7 集成和運行 100
5.8 回顧代碼覆蓋率和設計 102
5.8.1 評估代碼覆蓋率 102
5.8.2 代碼設計 103
5.9 提供HTTP訪問 104
5.10 小結 105
第6章 Express測試驅動開發 106
6.1 為可測試性設計 106
6.1.1 創建策略設計 107
6.1.2 通過測試創建戰略設計 108
6.2 創建Express應用並運行金絲雀測試 108
6.3 設計數據庫連接 109
6.4 設計模型 113
6.4.1 建立數據庫連接和測試固件 113
6.4.2 設計all函數 114
6.4.3 設計get函數 115
6.4.4 設計add函數 116
6.4.5 處理delete函數 121
6.4.6 設計共享的校驗代碼 123
6.5 設計路由函數 126
6.5.1 重溫路由 127
6.5.2 從為Router創建stub開始 128
6.5.3 測試路徑/的GET方法 129
6.5.4 測試路徑/:id的GET方法 131
6.5.5 處理路徑/的POST方法 133
6.5.6 以路徑/:id的DELETE方法結束整個測試 135
6.6 評估代碼覆蓋率 136
6.7 運行應用 138
6.7.1 使用Curl 139
6.7.2 使用Chrome擴展程序 140
6.7.3 觀察響應 141
6.8 小結 141
第7章 與DOM和jQuery協作 142
7.1 創建策略設計 142
7.2 通過測試創建戰略設計 143
7.2.1 創建測試列表 143
7.2.2 創建項目 144
7.3 增量開發 145
7.3.1 設計getTasks 146
7.3.2 更新DOM 147
7.3.3 調用服務 150
7.3.4 註冊window對象的onload事件 154
7.4 運行 UI 155
7.5 完成設計 156
7.5.1 設計addTask 157
7.5.2 設計deleteTask 163
7.6 使用jQuery進行測試 165
7.6.1 準備工作 166
7.6.2 使用jQuery選擇器 166
7.6.3 使用$.ajax驗證調用 167
7.6.4 測試document的ready函數 168
7.6.5 完整的測試和使用jQuery的代碼實現 170
7.7 評估代碼覆蓋率 170
7.8 小結 171
第8章 使用AngularJS 172
8.1 測試AngularJS的方式 172
8.2 初步設計 175
8.3 關注控制器 176
8.3.1 準備工作空間 176
8.3.2 編寫* 一個測試 177
8.3.3 設計控制器 177
8.4 設計服務交互 180
8.5 分離關注點,減少mock 182
8.5.1 找到合適的地方 183
8.5.2 結合經驗測試和交互測試 183
8.5.3 測試加載順序 186
8.6 繼續設計 187
8.6.1 設計addTask 188
8.6.2 設計deleteTask 192
8.7 設計服務 194
8.7.1 設計get 函數 194
8.7.2 設計add 函數 197
8.7.3 設計delete 函數 198
8.8 評估代碼覆蓋率 199
8.9 運行UI 200
8.10 小結 201
第9章 Angular 2測試驅動開發 202
9.1 通過spike學習Angular 202
9.1.1 管道、服務和組件 203
9.1.2 創建項目 203
9.1.3 創建管道 204
9.1.4 創建服務 205
9.1.5 創建組件 207
9.1.6 集成 211
9.2 通過測試設計Angular應用 213
9.2.1 創建項目 214
9.2.2 創建測試列表 215
9.3 測試驅動組件的設計 215
9.3.1 驗證是否設置組件屬性 215
9.3.2 初始化模型 218
9.3.3 設計getTasks 219
9.3.4 對任務進行排序 222
9.3.5 驗證依賴注入 224
9.4 測試驅動服務的設計 226
9.5 測試驅動管道的設計 230
9.6 測試驅動啟動代碼 234
9.7 集成 236
9.8 完成設計 237
9.8.1 設計任務添加功能 238
9.8.2 設計任務刪除功能 245
9.8.3 評估代碼覆蓋率 248
9.9 小結 249
第10章 集成測試和端到端測試 250
10.1 認識Protractor 250
10.1.1 使用Protractor的理由 251
10.1.2 安裝Protractor 251
10.1.3 使用Protractor進行測試 251
10.1.4 為UI層測試做準備 253
10.1.5 編寫第一個測試 254
10.1.6 測試數據發送 255
10.2 啟動服務器和配置數據庫 256
10.2.1 為TO-DO應用安裝Protractor 257
10.2.2 在設置前啟動服務器 257
10.2.3 為不同的環境創建數據庫 259
10.2.4 在beforeEach中設置數據 260
10.3 測試jQuery UI 261
10.3.1 設置Protractor配置文件 261
10.3.2 發現必要的測試 261
10.3.3 實現集成測試 262
10.4 使用頁面對象 265
10.5 測試AngularJS的UI 268
10.6 測試Angular 2的UI 272
10.7 小結 275
第11章 測試驅動你自己的應用 276
11.1 努力的成果 276
11.2 測試的規模和層次 279
11.3 測試驅動:程序員指南 280
11.4 測試驅動:團隊領導、架構師指南 282
11.5 測試驅動:項目經理指南 283
11.5.1 促進可持續的敏捷開發實踐 283
11.5.2 優雅地處理遺留應用 283
11.5.3 結束新的遺留應用 284
11.6 搖滾吧 285
附錄 網絡資源 286
參考文獻 288

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 412
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區