《Vue.js套用測試》是2020年機械工業出版社出版的圖書,作者是埃德·耶伯格(Edd Yerburgh) 。
基本介紹
- 中文名:Vue.js套用測試
- 作者:埃德·耶伯格(Edd Yerburgh)
- 類別:前端
- 原作品:Testing Vue.js Applications
- 譯者:李宏凱、李冬梅
- 出版社:機械工業出版社
- 出版時間:2020年3月30日
- 頁數:243 頁
- 定價:79 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787111646709
內容簡介,圖書目錄,作者簡介,
內容簡介
Vue.js創始人 尤雨溪(Evan You)鼎力推薦。Vue官方測試工具作者親筆撰寫。
本書是一本為Vue應用程式開發者提供程式測試指導的書籍,適用於不同能力水平的Vue應用程式開發者。本書通過從零編寫Hacker News應用程式的方式,詳細闡述了Vue.js應用程式在每個開發階段所適用的測試技巧,完整展示了編制Vue.js應用程式測試套件所需的技能。
本書的前兩章是對測試Vue.js套用的介紹,以及編寫Vue.js測試的基礎引導;在第3章到第11章,以及第13章的部分中,書中針對Vue.js程式的特性,分別介紹了測試Vue組件輸出、events、methods 、Vuex、Vue Router以及測試mixin、filter和SSR的方法;第12章和第14章介紹了常見的快照測試和端到端測試的相關內容。
除此之外,書中還對測試中遇到的一些特殊情況進行了描述,作者在演示如何通過mock Date.now 方法來解決此特殊情況的同時,也向我們展示了該系列問題的解決思路。
讀者結合書中實例進行演練,即可迅速掌握相關測試技巧。
圖書目錄
★目 錄 Contents
譯者序
前言
致謝
●第1章 Vue程式測試介紹 1
1.1 測試的定義 2
1.1.1 手動測試 2
1.1.2 自動化測試 3
1.1.3 測試GitHub的拉取請求 3
1.2 測試概覽 4
1.2.1 端到端測試概覽 4
1.2.2 單元測試概覽 6
1.2.3 快照測試 7
1.2.4 有效地組合測試類型 8
1.2.5 測試驅動開發 9
1.2.6 了解何時不進行自動化測試 9
1.2.7 100%代碼覆蓋率的謬誤 10
1.3 編寫Hacker News應用程式 11
1.4 Vue測試概覽 12
1.4.1 Vue實例 12
1.4.2 模板和渲染函式 13
1.4.3 了解Vue組件系統 14
1.4.4 單元測試組件 16
●第2章 創建你的第一個測試 18
2.1 了解Vue項目結構 19
2.1.1 了解構建工具 19
2.1.2 使用Vue CLI生成項目 19
2.1.3 了解目錄結構 20
2.1.4 了解npm 20
2.1.5 了解package.json檔案 22
2.1.6 使用ESLint校驗檔案 22
2.1.7 編寫測試腳本 23
2.1.8 構建項目 24
2.2 Jest簡介 24
2.2.1 編寫可用性測試 24
2.2.2 了解測試斷言 27
2.2.3 避免誤報 28
2.2.4 使用describe函式組織測試 29
2.2.5 組件的單元測試 31
2.2.6 使用Jest編譯檔案 31
2.2.7 掛載組件 32
2.3 Vue Test Utils簡介 34
2.3.1 了解API 34
2.3.2 使用shallowMount 35
2.4 使用Chrome Debugger調試測試 36
●第3章 渲染組件輸出測試 40
3.1 創建測試規範 40
3.1.1 高級規範 41
3.1.2 創建組件級規範 42
3.2 渲染文本測試 43
3.2.1 向一個組件傳遞prop 43
3.2.2 組件文本內容測試 44
3.2.3 使用find 45
3.2.4 測試元素的文本內容 46
3.3 測試DOM屬性 47
3.4 測試渲染組件的數量 48
3.5 測試prop 51
3.5.1 使用Vue Test Utils props方法 51
3.5.2 避免測試prop過程中的陷阱 52
3.6 測試class 53
3.7 測試樣式 54
3.7.1 訪問一個包裝器元素 55
3.7.2 向一個應用程式添加樣式 55
3.8 何時測試渲染的組件輸出 56
●第4章 測試組件方法 59
4.1 測試公共組件和私有組件方法 60
4.2 測試定時器函式 64
4.2.1 使用假定時器 65
4.2.2 使用spy測試 67
4.3 向Vue實例添加屬性 69
4.4 模擬代碼 70
4.4.1 模擬組件中的Vue實例屬性 70
4.4.2 了解Jest mock函式 71
4.4.3 使用Vue生命周期鉤子 72
4.5 模擬模組依賴 73
4.5.1 使用Jest mock模擬模組依賴 75
4.5.2 測試異步代碼 76
4.5.3 適度使用mock 80
●第5章 測試事件 82
5.1 測試原生DOM事件 83
5.2 測試自定義事件 85
5.2.1 測試發射自定義事件的組件 86
5.2.2 測試監聽Vue自定義事件的組件 88
5.3 測試輸入表單 89
5.3.1 測試文本輸入框 90
5.3.2 測試單選按鈕 93
5.4 了解jsdom的局限性 95
●第6章 了解Vuex 97
6.1 了解state 98
6.2 Vuex可以解決的問題 99
6.3 了解Vuex store 99
6.3.1 創建一個store 100
6.3.2 了解Vuex mutation 101
6.3.3 了解Vuex action 102
6.3.4 了解Vuex getter 104
●第7章 測試Vuex 107
7.1 了解store設計 108
7.2 向項目中添加Vuex 109
7.3 分別測試Vuex store的組成部分 111
7.3.1 測試mutation 112
7.3.2 測試Vuex getter 113
7.3.3 測試Vuex action 115
7.4 測試一個Vuex store實例 118
7.5 測試組件中的Vuex 123
●第8章 使用工廠函式組織測試 129
8.1 了解工廠函式 129
8.1.1 使代碼符合DRY原則 130
8.1.2 通過沿用同一種模式來提升代碼質量 131
8.1.3 了解工廠函式的利弊 132
8.2 創建store工廠函式 132
8.3 覆蓋工廠函式中的默認選項 133
8.4 創建包裝器工廠函式 136
●第9章 了解 Vue Router 141
9.1 了解路由 142
9.1.1 了解服務端路由 142
9.1.2 了解客戶端路由 143
9.1.3 了解Vue Router的概念 144
9.1.4 了解動態路由匹配 145
9.1.5 為應用程式添加Vue Router 146
●第10章 測試 Vue Router 150
10.1 測試路由屬性 151
10.1.1 測試$route屬性 151
10.1.2 測試$router屬性 155
10.1.3 避免常見的陷阱 156
10.2 測試 RouterLink 組件 157
10.3 Vuex與Vue Router配合使用 162
10.3.1 把路由添加到store 162
10.3.2 在store中使用路由參數 162
●第11章 測試mixin和過濾器 166
11.1 測試mixin 166
11.1.1 了解mixin 167
11.1.2 為mixin編寫測試 168
11.1.3 測試組件中的局部mixin 171
11.1.4 測試組件中的全局mixin 172
11.2 測試過濾器 174
11.2.1 為過濾器編寫測試 175
11.2.2 測試使用了Date.now的過濾器 177
11.2.3 測試組件中的過濾器 180
●第12章 編寫快照測試 183
12.1 了解快照測試 184
12.1.1 為組件編寫快照測試 186
12.1.2 為靜態組件編寫快照測試 186
12.1.3 為動態組件編寫快照測試 187
12.2 將快照測試添加到你的工作流 190
●第13章 測試服務端渲染 192
13.1 了解服務端渲染 193
13.1.1 SSR的優點 193
13.1.2 SSR的缺點 195
13.2 測試服務端渲染的組件 196
13.2.1 使用Vue Server Test Utils 197
13.2.2 使用render遍歷服務端渲染的標籤 199
13.3 使用SuperTest測試狀態碼 200
13.4 隱式測試SSR 203
●第14章 編寫端到端測試 205
14.1 了解端到端測試 206
14.1.1 高效地使用端到端測試 206
14.1.2 了解Nightwatch和WebDriver 207
14.2 把Nightwatch添加到項目中 208
14.2.1 安裝依賴項 208
14.2.2 配置Nightwatch 209
14.2.3 添加一個可用性測試 210
14.2.4 編寫一個端到端測試腳本 211
14.3 使用 Nightwatch編寫端到端測試 212
14.3.1 選擇要編寫哪些端到端測試 213
14.3.2 為路由編寫端到端測試 213
14.3.3 為動態數據編寫端到端測試 215
14.4 在多瀏覽器運行端到端測試 217
14.5 接下來何去何從 218
附錄 A 安裝開發環境 220
附錄 B 運行生產構建 226
附錄 C 練習題答案 228
作者簡介
埃德·耶伯格(Edd Yerburgh)
Vue核心貢獻者, 官方Vue測試庫的主要作者。BBC的軟體工程師,經驗豐富的JavaScript開發者