更新时间:2020-05-06 16:36:23
封面
版权信息
O'Reilly Media Inc. 介绍
前言
准备工作和应具备的知识
配套视频
致谢
第一部分 TDD和Django基础
第1章 使用功能测试协助安装Django
1.1 遵从测试山羊的教诲,没有测试什么也别做
1.2 让Django运行起来
1.3 创建Git仓库
第2章 使用unittest模块扩展功能测试
2.1 使用功能测试驱动开发一个最简可用的应用
2.2 Python标准库中的unittest模块
2.3 提交
第3章 使用单元测试测试简单的首页
3.1 第一个Django应用,第一个单元测试
3.2 单元测试及其与功能测试的区别
3.3 Django中的单元测试
3.4 Django中的MVC、URL和视图函数
3.5 终于可以编写一些应用代码了
3.6 urls.py
3.7 为视图编写单元测试
第4章 测试(及重构)的目的
4.1 编程就像从井里打水
4.2 使用Selenium测试用户交互
4.3 遵守“不测试常量”规则,使用模板解决这个问题
4.4 关于重构
4.5 接着修改首页
4.6 总结:TDD流程
第5章 保存用户输入:测试数据库
5.1 编写表单,发送POST请求
5.2 在服务器中处理POST请求
5.3 把Python变量传入模板中渲染
5.4 事不过三,三则重构
5.5 Django ORM和第一个模型
5.6 把POST请求中的数据存入数据库
5.7 处理完POST请求后重定向
5.8 在模板中渲染待办事项
5.9 使用迁移创建生产数据库
5.10 回顾
第6章 改进功能测试:确保隔离,去掉含糊的休眠
6.1 确保功能测试之间相互隔离
6.2 升级Selenium和Geckodriver
6.3 隐式等待、显式等待和含糊的time.sleep
第7章 步步为营
7.1 必要时做少量的设计
7.2 使用TDD实现新设计
7.3 确保出现回归测试
7.4 逐步迭代,实现新设计
7.5 自成一体的第一步:新的URL
7.6 变绿了吗?该重构了
7.7 再迈一小步:一个新模板,用于查看清单
7.8 第三小步:用于添加待办事项的URL
7.9 下定决心,调整模型
7.10 每个列表都应该有自己的URL
7.11 功能测试又检测到回归
7.12 还需要一个视图,把待办事项加入现有清单
7.13 使用URL引入做最后一次重构
第二部分 Web开发要素
第8章 美化网站:布局、样式及其测试方法
8.1 如何在功能测试中测试布局和样式
8.2 使用CSS框架美化网站
8.3 Django模板继承
8.4 集成Bootstrap
8.5 Django中的静态文件
8.6 使用Bootstrap中的组件改进网站外观
8.7 使用自己编写的CSS
8.8 补遗:collectstatic命令和其他静态目录
8.9 没谈到的话题
第9章 使用过渡网站测试部署
9.1 TDD以及部署的危险区域
9.2 一如既往,先写测试
9.3 注册域名
9.4 手动配置托管网站的服务器
9.5 手动部署代码
9.6 手动部署大功告成
第10章 为部署到生产环境做好准备
10.1 换用Gunicorn
10.2 让Nginx伺服静态文件
10.3 换用Unix套接字
10.4 把DEBUG设为False,设置ALLOWED_HOSTS
10.5 使用Systemd确保引导时启动Gunicorn
10.6 考虑自动化
10.7 保存进度
第11章 使用Fabric自动部署
11.1 分析一个Fabric部署脚本
11.2 试用部署脚本
11.3 使用Git标签标注发布状态
11.4 延伸阅读
第12章 输入验证和测试的组织方式
12.1 针对验证的功能测试:避免提交空待办事项
12.2 功能测试新工具:通用显式等待辅助方法
12.3 补完功能测试
12.4 重构单元测试,分拆成多个文件
第13章 数据库层验证
13.1 模型层验证
13.2 在视图中显示模型验证错误
13.3 Django模式:在渲染表单的视图中处理POST请求