注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)JavaScript測試驅(qū)動開發(fā)

JavaScript測試驅(qū)動開發(fā)

JavaScript測試驅(qū)動開發(fā)

定 價(jià):¥79.00

作 者: [美] 文卡特·蘇布拉馬尼亞姆(Venkat Subramaniam) 著;毛姝雯 譯
出版社: 人民郵電出版社
叢編項(xiàng): 圖靈程序設(shè)計(jì)叢書
標(biāo) 簽: 暫缺

ISBN: 9787115477156 出版時(shí)間: 2018-03-01 包裝: 平裝
開本: 16開 頁數(shù): 288 字?jǐn)?shù):  

內(nèi)容簡介

  JavaScript已經(jīng)成為使用* 廣泛的語言之一,它強(qiáng)大且高度靈活,但同時(shí)也頗具風(fēng)險(xiǎn),所以應(yīng)該用更出色的開發(fā)實(shí)踐來支持。自動化測試和持續(xù)集成* 是很好的方法,可以降低JavaScript帶來的風(fēng)險(xiǎn)。本書介紹JavaScript自動化測試及其相關(guān)實(shí)踐,主體內(nèi)容包括兩部分:* 一部分涵蓋自動化測試的基礎(chǔ),介紹如何為同步函數(shù)和異步函數(shù)編寫測試,以及當(dāng)代碼包含復(fù)雜的依賴關(guān)系時(shí)如何實(shí)現(xiàn)自動化測試;* 二部分通過一個(gè)測試驅(qū)動開發(fā)的示例,讓讀者能夠運(yùn)用在* 一部分所學(xué)的內(nèi)容,為客戶端和服務(wù)器端編寫自動化測試。本書在幫助讀者學(xué)習(xí)和研究測試工具和技術(shù)的同時(shí),還會介紹一些軟件設(shè)計(jì)原則,有助于實(shí)現(xiàn)輕量級設(shè)計(jì),并得到可維護(hù)的代碼。

作者簡介

  【作者簡介】Venkat Subramaniam博士,Agile Developer公司創(chuàng)始人,敏捷開發(fā)先驅(qū),通過演講、著書、培訓(xùn)等方式影響了全球數(shù)十萬軟件開發(fā)人員。另著有《高效程序員的45個(gè)習(xí)慣:敏捷開發(fā)修煉之道》《Scala程序設(shè)計(jì):Java虛擬機(jī)多核編程實(shí)戰(zhàn)》《Groovy程序設(shè)計(jì)》等書。【譯者簡介】毛姝雯對編程有著濃烈的興趣,iOS開發(fā)、Web前端開發(fā)、UI設(shè)計(jì)等領(lǐng)域都有涉足。曾任職于IBM,專注于移動端Web開發(fā)?,F(xiàn)在已經(jīng)是一個(gè)可愛寶寶的母親。

圖書目錄

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

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號