第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了解Vuexstore 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