购物车中还没有商品,赶紧选购吧!
条形条码:
Python测试驱动开发:使用Django Selenium和JavaScript进行Web编程(第2版)
商 城 价
降价通知
市 场 价
累计评价0
累计销量0
手机购买
商品二维码
配送
服务
天添网自营 发货并提供售后服务。
数量
库存  个
温馨提示

·不支持退换货服务

  • 商品详情
手机购买
商品二维码
加入购物车
价格:
数量:
库存  个

商品详情

商品名称:Python测试驱动开发:使用Django Selenium和JavaScript进行Web编程(第2版)
商品编号:711548557
店铺:天添网自营
上架时间:2020-09-11 16:14:35

编辑推荐



null


内容简介



本书从基础的知识开始,讲解Web开发的整个流程,展示如何使用Python做测试驱动开发。本书由三个部分组成。第一部分介绍了测试驱动开发和Django的基础知识,并在每个阶段进行严格的单元测试。第二部分讨论了Web开发要素,探讨了Web开发过程中不可避免的问题,以及如何通过测试解决这些问题。第三部分探讨了一些话题,如模拟技术、集成第三方认证系统、Ajax、测试固件以及持续集成等。 第2版全部使用Python 3,并针对新版Django全面升级,介绍了由外而内的测试驱动开发流程。 本书适合Web开发人员阅读。


作者介绍



哈利·J.W. 帕西瓦尔(Harry J.W. Percival),TDD积极践行者,曾参与开发电子制作表软件先驱Resolver One;目前jiu职于PythonAnywhere公司,经常受邀参加TDD和Python开发主题演讲、研讨会;取得了利物浦大学计算机科学硕士学位和剑桥大学哲学硕士学位。


目 录



前言 xv 准备工作和应具备的知识 xxi 配套视频 xxviii 致谢 xxix 第 一部分 TDD和Django基础 第 1章 使用功能测试协助安装Django 2 1.1 遵从测试山羊的教诲,没有测试什么也别做 2 1.2 让Django运行起来 4 1.3 创建Git仓库 6 第 2 章 使用unittest模块扩展功能测试 10 2.1 使用功能测试驱动开发一个最简可用的应用 10 2.2 Python标准库中的unittest模块 12 2.3 提交 14 第3章 使用单元测试测试简单的首页 16 3.1 第 一个Django应用,第 一个单元测试 16 3.2 单元测试及其与功能测试的区别 17 3.3 Django中的单元测试 18 3.4 Django中的MVC、URL和视图函数 19 3.5 终于可以编写一些应用代码了 20 3.6 urls.py 22 3.7 为视图编写单元测试 23 第4章 测试(及重构)的目的 28 4.1 编程就像从井里打水 28 4.2 使用Selenium测试用户交互 30 4.3 遵守“不测试常量”规则,使用模板解决这个问题 32 4.3.1 使用模板重构 33 4.3.2 Django测试客户端 35 4.4 关于重构 37 4.5 接着修改首页 38 4.6 总结:TDD流程 39 第5章 保存用户输入:测试数据库 42 5.1 编写表单,发送POST请求 42 5.2 在服务器中处理POST请求 45 5.3 把Python变量传入模板中渲染 46 5.4 事不过三,三则重构 50 5.5 Django ORM和第 一个模型 51 5.5.1 第 一个数据库迁移 53 5.5.2 测试向前走得挺远 53 5.5.3 添加新字段就要创建新迁移 54 5.6 把POST请求中的数据存入数据库 55 5.7 处理完POST请求后重定向 57 5.8 在模板中渲染待办事项 59 5.9 使用迁移创建生产数据库 61 5.10 回顾 64 第6章 改进功能测试:确保隔离,去掉含糊的休眠 66 6.1 确保功能测试之间相互隔离 66 6.2 升级Selenium和Geckodriver 70 6.3 隐式等待、显式等待和含糊的time.sleep 70 第7章 步步为营 75 7.1 必要时做少量的设计 75 7.1.1 不要预先做大量设计 75 7.1.2 YAGNI 76 7.1.3 REST(式) 76 7.2 使用TDD实现新设计 77 7.3 确保出现回归测试 78 7.4 逐步迭代,实现新设计 80 7.5 自成一体的第 一步:新的URL 81 7.5.1 一个新URL 82 7.5.2 一个新视图函数 82 7.6 变绿了吗?该重构了 84 7.7 再迈一小步:一个新模板,用于查看清单 84 7.8 第三小步:用于添加待办事项的URL 86 7.8.1 用来测试新建清单的测试类 87 7.8.2 用于新建清单的URL和视图 88 7.8.3 删除当前多余的代码和测试 89 7.8.4 出现回归!让表单指向刚添加的新URL 89 7.9 下定决心,调整模型 90 7.9.1 外键关系 92 7.9.2 根据新模型定义调整其他代码 93 7.10 每个列表都应该有自己的URL 95 7.10.1 捕获URL中的参数 96 7.10.2 按照新设计调整new_list视图 97 7.11 功能测试又检测到回归 98 7.12 还需要一个视图,把待办事项加入现有清单 99 7.12.1 小心霸道的正则表达式 99 7.12.2 最后一个新URL 100 7.12.3 最后一个新视图 101 7.12.4 直接测试响应上下文对象 102 7.13 使用URL引入做最后一次重构 103 第二部分 Web 开发要素 第8章 美化网站:布局、样式及其测试方法 108 8.1 如何在功能测试中测试布局和样式 108 8.2 使用CSS框架美化网站 111 8.3 Django模板继承 112 8.4 集成Bootstrap 114 8.5 Django中的静态文件 115 8.6 使用Bootstrap中的组件改进网站外观 117 8.6.1 超大文本块 118 8.6.2 大型输入框 118 8.6.3 样式化表格 118 8.7 使用自己编写的CSS 118 8.8 补遗:collectstatic命令和其他静态目录 120 8.9 没谈到的话题 122 第9章 使用过渡网站测试部署 123 9.1 TDD以及部署的危险区域 124 9.2 一如既往,先写测试 125 9.3 注册域名 127 9.4 手动配置托管网站的服务器 127 9.4.1 选择在哪里托管网站 127 9.4.2 搭建服务器 128 9.4.3 用户账户、SSH和权限 128 9.4.4 安装Nginx 128 9.4.5 安装Python 3.6 129 9.4.6 解析过渡环境和线上环境所用的域名 130 9.4.7 使用功能测试确认域名可用而且Nginx正在运行 130 9.5 手动部署代码 130 9.5.1 调整数据库的位置 131 9.5.2 手动创建虚拟环境,使用requirements.txt 133 9.5.3 简单配置Nginx 134 9.5.4 使用迁移创建数据库 136 9.6 手动部署大功告成 137 第 10章 为部署到生产环境做好准备 139 10.1 换用Gunicorn 139 10.2 让Nginx伺服静态文件 140 10.3 换用Unix套接字 141 10.4 把DEBUG设为False,设置ALLOWED_HOSTS 142 10.5 使用Systemd确保引导时启动Gunicorn 143 10.6 考虑自动化 144 10.7 保存进度 147 第 11章 使用Fabric自动部署 148 11.1 分析一个Fabric部署脚本 149 11.1.1 分析一个Fabric部署脚本 149 11.1.2 使用Git拉取源码 150 11.1.3 更新settings.py 151 11.1.4 更新虚拟环境 151 11.1.5 需要时迁移数据库 152 11.2 试用部署脚本 152 11.2.1 部署到线上服务器 154 11.2.2 使用sed配置Nginx和Gunicorn 155 11.3 使用Git标签标注发布状态 157 11.4 延伸阅读 157 第 12章 输入验证和测试的组织方式 159 12.1 针对验证的功能测试:避免提交空待办事项 159 12.1.1 跳过测试 160 12.1.2 把功能测试分拆到多个文件中 161 12.1.3 运行单个测试文件 163 12.2 功能测试新工具:通用显式等待辅助方法 164 12.3 补完功能测试 167 12.4 重构单元测试,分拆成多个文件 168 第 13章 数据库层验证 171 13.1 模型层验证 172 13.1.1 self.assertRaises上下文管理器 172 13.1.2 Django怪异的表现:保存时不验证数据 173 13.2 在视图中显示模型验证错误 173 13.3 Django模式:在渲染表单的视图中处理POST请求 177 13.3.1 重构:把new_item实现的功能移到view_list中 178 13.3.2 在view_list视图中执行模型验证 180 13.4 重构:去除硬编码的URL 182 13.4.1 模板标签{_ url _} 182 13.4.2 重定向时使用get_absolute_url 183 第 14章 简单的表单 186 14.1 把验证逻辑移到表单中 186 14.1.1 使用单元测试探索表单API 187 14.1.2 换用Django中的ModelForm类 188 14.1.3 测试和定制表单验证 189 14.2 在视图中使用这个表单 191 14.2.1 在处理GET请求的视图中使用这个表单 191 14.2.2 大量查找和替换 192 14.3 在处理POST请求的视图中使用这个表单 194 14.3.1 修改new_list视图的单元测试 195 14.3.2 在视图中使用这个表单 196 14.3.3 使用这个表单在模板中显示错误消息 196 14.4 在其他视图中使用这个表单 197 14.4.1 定义辅助方法,简化测试 197 14.4.2 意想不到的好处:HTML5自带的客户端验证 199 14.5 值得鼓励 201 14.6 这难道不是浪费时间吗 201 14.7 使用表单自带的save方法 202 第 15章 高级表单 205 15.1 针对重复待办事项的功能测试 205 15.1.1 在模型层禁止重复 206 15.1.2 题外话:查询集合排序和字符串表示形式 208 15.1.3 重写旧模型测试 210 15.1.4 保存时确实会显示完整性错误 211 15.2 在视图层试验待办事项重复验证 212 15.3 处理唯一性验证的复杂表单 213 15.4 在清单视图中使用ExistingListItemForm 215 15.5 小结:目前所学的Django测试知识 217 第 16章 试探JavaScript 219 16.1 从功能测试开始 219 16.2 安装一个基本的JavaScript测试运行程序 221 16.3 使用jQuery和


媒体评论



null


对比栏

1

您还可以继续添加

2

您还可以继续添加

3

您还可以继续添加

4

您还可以继续添加