| 作者 |
| [英]埃德·耶伯格(Edd Yerburgh) 张帆 |
| 丛书名 |
| Web开发技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782004091712 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------Vue.js应用测试--------------------------- 本书是一本为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 方法来解决此特殊情况的同时,也向我们展示了该系列问题的解决思路。读者结合书中实例进行演练,即可迅速掌握相关测试技巧。 ---------------------------Vue.js项目开发实战--------------------------- 本书以实战开发为原则,以Vue.js的项目开发过程为主线,以JavaScript语言为基础,介绍了一整套面向Vue.js的项目开发技术。从NoSQL数据库的搭建到Express项目API的编写,最后由Vue.js显示在前端的页面中,使得读者可以非常迅速地掌握一门技术甚至是一个项目的开发能力。 本书分为4篇,第一篇是Vue.js基础环境的搭建,是全书的基石;第二篇是电影项目的设计,涵盖ES6、webpack、工程化环境搭建等关键技术;第三篇是电影项目的前、后端实现,涵盖Node.js后端技术、Vue.js各种组件和API等技术;最后一篇美化项目,通过学习一些Vue.js模板和框架,制作更美观的UI界面。本书不仅仅适合想学习Vue.js的读者,甚至对于一些“0”编程基础的爱好者或者是产品经理也同样适用。 |
| 目录 |
---------------------------Vue.js应用测试--------------------------- 译者序 前言 致谢 第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 ---------------------------Vue.js项目开发实战--------------------------- 前言 第1篇 背景知识 第1章 初探网页开发 2 1.1 网页开发历史 2 1.1.1 传统网页开发 3 1.1.2 新前端网页开发 5 1.2 MVVM风格开发框架 6 1.2.1 为什么会出现MVVM 6 1.2.2 MVVM架构的最佳实践 7 1.2.3 MVC、MVP和MVVM开发模式对比 8 1.3 Vue.js来了 9 1.4 Vue.js的安装 10 1.4.1 使用独立版本 11 1.4.2 使用CDN安装 13 1.4.3 “npm大法”安装 15 1.4.4 使用Chrome浏览器测试Vue.js的双向绑定 17 1.5 Vue.js的主要特性 19 1.5.1 组件 19 1.5.2 模板 22 1.5.3 响应式设计 22 1.5.4 过渡效果 22 1.5.5 单文件组件 24 1.6 小结与练习 24 1.6.1 小结 24 1.6.2 练习 25 第2篇 项目设计 第2章 开启Vue.js之旅的准备工作 28 2.1 JavaScript运行与开发环境 28 2.1.1 神奇的包管理器——npm 28 2.1.2 好用的浏览器——Chrome 31 2.1.3 Vue.js的调试神器——vue-devtools 34 2.1.4 非常智能的IDE——WebStorm 36 2.2 认识ECMAScript 6(ES 6) 39 2.2.1 ES 6的前世今生 39 2.2.2 为什么要使用ES 6 40 2.3 ES 6的一些常用语法 40 2.3.1 Default Parameters(默认参数) 40 2.3.2 Template Literals(模板文本) 41 2.3.3 Multi-line Strings(多行字符串) 41 2.3.4 Destructuring Assignment(解构赋值) 42 2.3.5 Enhanced Object Literals(增强的对象文本) 42 2.3.6 Arrow Functions(箭头函数) 43 2.3.7 Promise实现 44 2.3.8 块作用域构造let 45 2.3.9 Classes(类) 46 2.3.10 Modules(模块) 46 2.4 使用Babel进行ES 6的转化 47 2.4.1 安装Babel 48 2.4.2 使用Babel 48 2.5 精简压缩生产环境的Webpack 51 2.5.1 Webpack是什么 51 2.5.2 配置一个完整项目的Webpack 52 2.5.3 不得不说的新版Webpack 4 56 2.6 小结与练习 59 2.6.1 小结 59 2.6.2 练习 59 第3章 从一个电影网站项目学习Vue.js 60 3.1 快速构建第一个Vue.js程序 60 3.1.1 通过CLI构建应用 60 3.1.2 输出Hello world! 63 3.1.3 开发环境与生产环境 66 3.2 电影网站的设计 70 3.2.1 网站的功能设计 70 3.2.2 网站的路由设计 71 3.2.3 网站的页面设计 72 3.3 电影网站的技术选择 73 3.3.1 服务的坚实后盾——数据库 73 3.3.2 数据的搬运和加工——服务器端 74 3.4 小结与练习 74 3.4.1 小结 74 3.4.2 练习 75 第4章 电影网站数据库的搭建 76 4.1 什么是数据库 76 4.1.1 什么是SQL 76 4.1.2 什么是NoSQL 78 4.1.3 两种数据库的对比分析 79 4.2 MongoDB基础入门 80 4.2.1 为什么选择MongoDB 80 4.2.2 安装MongoDB 81 4.2.3 启动MongoDB 83 4.2.4 安装MongoDB的可视化界面 87 4.2.5 MongoDB的基础操作 90 4.3 电影网站数据库的建立 92 4.3.1 数据库的分析与设计 93 4.3.2 数据集的建立 94 4.4 小结与练习 96 4.4.1 小结 96 4.4.2 练习 97 第3篇 Vue.js应用开发 第5章 电影网站服务器端的设计 100 5.1 使用JavaScript开发后端服务 100 5.1.1 神奇的Node.js 100 5.1.2 什么是Express 101 5.2 使用Express进行Web开发 102 5.2.1 安装Express 102 5.2.2 设计后台服务API 105 5.2.3 设计路由 107 5.3 服务器测试 108 5.3.1 一个测试HTTP请求的Postman插件 108 5.3.2 在Chrome中安装Postman插件 109 5.3.3 使用Postman插件进行数据测试 110 5.4 Express后台代码编写 112 5.4.1 新建工程 112 5.4.2 连接数据库 115 5.4.3 使用Supervisor监控代码的修改 118 5.5 用户系统开发 119 5.5.1 注册路由 122 5.5.2 登录路由 125 5.5.3 找回密码路由 128 5.5.4 提交评论路由 133 5.5.5 点赞路由 135 5.5.6 下载路由 137 5.5.7 发送站内信路由 138 5.5.8 接收站内信路由 141 5.6 前台API开发 143 5.6.1 显示排行榜 145 5.6.2 显示文章列表 145 5.6.3 显示文章内容 146 5.6.4 显示用户个人信息 147 5.7 后台API开发 148 5.7.1 添加电影 148 5.7.2 删除电影 151 5.7.3 更新电影 152 5.7.4 获取所有电影 153 5.7.5 获取用户评论 154 5.7.6 审核用户评论 154 5.7.7 删除用户评论 156 5.7.8 封停用户 157 5.7.9 更新用户密码 159 5.7.10 显示所有用户 160 5.7.11 管理用户权限 162 5.7.12 新增文章 163 5.7.13 删除文章 165 5.7.14 新增主页推荐 166 5.7.15 删除热点信息 168 5.8 小结与练习 169 5.8.1 小结 169 5.8.2 练习 170 第6章 Vue.js项目开发技术解析 171 6.1 Vue.js实例 171 6.1.1 何为构造器 171 6.1.2 实例的属性和方法 172 6.1.3 生命周期 173 6.2 Vue.js路由 175 6.2.1 RESTful模式的路由 175 6.2.2 安装vue-router 175 6.3 Vue.js路由配置vue-router 176 6.3.1 动态路由匹配 176 6.3.2 嵌套路由 179 6.3.3 编程式导航 181 6.3.4 命名路由 183 6.3.5 命名视图 184 6.3.6 重定向和别名 186 6.3.7 路由组件传递参数 187 6.3.8 HTML 5 History模式 188 6.4 数据获取 189 6.4.1 导航守卫 189 6.4.2 数据获取 193 6.5 电影网站项目路由设计 195 6.5.1 新建Vue.js项目 195 6.5.2 前台路由页面编写 198 6.5.3 路由测试 200 6.6 小结与练习 201 6.6.1 小结 201 6.6.2 练习 201 第7章 模板学习 202 7.1 Vue.js模板 202 7.1.1 什么是模板 202 7.1.2 为什么使用模板 203 7.2 Vue.js模板语法 203 7.2.1 文本输出 204 7.2.2 纯HTML输出 205 7.2.3 JavaScript表达式 206 7.2.4 指令参数 208 7.3 计算属性和观察者属性 209 7.3.1 计算属性 209 7.3.2 计算属性的缓存与方法 210 7.3.3 计算属性与被观察的属性 211 7.3.4 计算属性的setter方法 212 7.3.5 观察者 213 7.3.6 聊天机器人小实例 213 7.4 电影网站项目页面编写 219 7.4.1 主页 219 7.4.2 电影列表页 226 7.4.3 电影详情页 228 7.4.4 新闻详情页 231 7.4.5 用户登录页 233 7.4.6 用户注册页 234 7.4.7 用户密码找回页 235 7.4.8 用户详情页 237 7.4.9 站内信的发送页面 239 7.5 小结与练习 241 7.5.1 小结 241 7.5.2 练习 242 第8章 让页面变成动态页面 243 8.1 条件渲染 243 8.1.1 v-if应用 243 8.1.2 v-show应用 244 8.2 列表渲染 244 8.2.1 v-for列表渲染 245 8.2.2 使用of作为分隔符 245 8.2.3 v-for与v-if同时使用 247 8.2.4 key关键字使用 250 8.3 事件处理器v-on 250 8.3.1 方法事件处理器 251 8.3.2 内联处理器 252 8.3.3 事件修饰符 252 8.3.4 键值修饰符 253 8.3.5 修饰键 254 8.3.6 鼠标的3个按键修饰符 254 8.4 交互的灵魂——表单 255 8.4.1 文本输入 255 8.4.2 多行文本 256 8.4.3 复选框 257 8.4.4 单选按钮 257 8.4.5 选择按钮 258 8.5 值的绑定 260 8.5.1 复选框值的绑定 260 8.5.2 单选按钮值的绑定 260 8.5.3 选择列表的设置和值的绑定 261 8.5.4 完整的表单实例 261 8.6 修饰符 264 8.6.1 修饰符.lazy的使用 264 8.6.2 修饰符.number的使用 264 8.6.3 修饰符.trim的使用 264 8.6.4 修饰符实例 264 8.7 电影网站项目功能编写 266 8.7.1 主页服务器内容获取 266 8.7.2 主页获取推荐内容显示 267 8.7.3 主页列表显示 269 8.7.4 主页用户状态显示 272 8.7.5 电影列表页 273 8.7.6 电影详情页 275 8.7.7 新闻页面功能 280 8.7.8 用户登录功能 282 8.7.9 用户注册页面功能 284 8.7.10 用户密码找回功能 286 8.7.11 用户详情页逻辑 288 8.7.12 站内信逻辑 291 8.8 小结与练习 296 8.8.1 小结 296 8.8.2 练习 296 第4篇 页面优化 第9章 让页面变得更加美丽 298 9.1 使用CSS美化Vue.js 298 9.1.1 什么是CSS 298 9.1.2 如何在项目中使用CSS 299 9.2 动态绑定class,让页面变得美观 300 9.2.1 绑定对象语法 300 9.2.2 绑定数组语法 302 9.2.3 自动添加前缀 304 9.2.4 绑定多重值 305 9.3 丰富多彩的模板和UI框架 306 9.3.1 常用的UI框架 306 9.3.2 如何使用专门为Vue.js准备的UI框架 309 9.4 使用Vue-iView建立精美的应用 309 9.4.1 安装iView 310 9.4.2 iView的用法 312 9.4.3 应用iView主题 314 9.5 常用组件 315 9.5.1 栅格(Grid)组件 315 9.5.2 按钮 318 9.5.3 表单组件 319 9.5.4 表格 325 9.6 使用iView美化项目 328 9.6.1 在项目中使用iView 328 9.6.2 主页的样式改造 330 9.6.3 登录页的样式改造 333 9.7 小结与练习 335 9.7.1 小结 335 9.7.2 练习 336 附录 iView组件默认样式 337 |