使用 RSpec 测试 Rails 程序(原书第3版)
7推荐 收藏
15.8K阅读

使用 RSpec 测试 Rails 程序(原书第3版)

Aaron Sumner (作者) 安道 (译者)
本书可下载三种格式的电子书:pdf,ePub 和 mobi。 无 mobi 推送支持。
本书是 Everyday Rails Testing with RSpec 的中文版,此书长期位列 Leanpub 畅销榜,是 Rails 应用测试的首选入门书。经过三次全面修订、更新,目前本书已出版到第 3 版。这一版针对 Rails 5/RSpec 3.6。

收藏本书能做什么?

有情况的时候会收到通知,比如电子书发布等。

2018最受欢迎电子书 榜单出炉

技术类top20!/ 非技术类top20!

电子书
¥29.00
格式
mobi   pdf   epub

出版信息

  • 书  名使用 RSpec 测试 Rails 程序(原书第3版)
  • 执行编辑关于本书的内容有任何问题,请联系 杨帆
  • 出版日期2018-02-05
  • 书  号EA010
  • 出版状态上市销售

所属分类

本书特色

本书的前身是我在 Everyday Rails 网站上发布的一系列博客文章。五年前,我开始记录自己学习测试 Rails 应用的经验,结果大受欢迎,因此我决定再添加一些内容和完整的示例代码,集结成书。本书出版后,销量完全超出了我的预想,而且帮助了众多与我当时面临相同困境的人们。

软件是个有趣的东西,关键就在这个“软”字上,它不是一成不变的。随着认识的深入,我们会调整解决问题的方法。我现在编写测试的知识依然源自原先那些博客文章和本书的第一版,但是随着时间的变迁,我掌握了一些新技术,摒弃了一些旧技术,还不断打磨可以沿用的技术。

过去的一年,我面临一个棘手的问题:如何把我掌握的技术体现到此次改版中,让新开发者能从中受益,根据自身的情况增补自己的知识,打造出适用于自己的一套测试方案?幸运的是,本书一直采用的学习策略仍然适用:从一个简单的应用入手,适当地在浏览器中测试(也可以使用 Postman 等测试 API);从小处着手测试,不断积累,构建起复杂的测试组件。我们要习惯反向思维,先测试,再编写实现代码。随着时间的推移,建立自己的有效测试策略。

此外,我对本书前几版使用的示例应用不太满意。起初我的想法是尽量保持简单,让读者能记住来龙去脉,这样方便介绍测试概念;但正是因为太过简单了,有时反而会造成困扰:代码太少,覆盖度不够。所以此次改版,我下决心一章一章修改代码,然而即使我只应用最简单的改动,也会导致版本控制系统出现冲突。这一版的示例应用比以往要复杂一些(但还没复杂到难以理解),用起来更得心应手。这是我近些年来第一次没有先编写测试而开发出来的应用。

艰辛的改版过程就说到这里,我希望你能从本书中获益,不管你是刚接触测试,还是想知道我对测试驱动开发的观点,抑或是想了解自第一版以来测试方式的变迁。

目录

版权声明
前言
致谢
关于封面
第 1 章 导言
1.1 为什么用 RSpec
1.2 哪些人应该阅读本书
1.3 我的测试哲学
1.4 内容结构
1.5 下载示例代码
1.6 代码约定
1.7 讨论和勘误
1.8 关于 gem 版本
1.9 关于示例应用
第 2 章 安装 RSpec
2.1 Gemfile
2.2 测试数据库
2.3 配置 RSpec
2.4 试一试
2.5 生成器
2.6 小结
2.7 问答
2.8 练习
第 3 章 模型测试
3.1 模型测试剖析
3.2 编写模型测试
3.3 RSpec 的句法
3.4 测试数据验证
3.5 测试实例方法
3.6 测试类方法和作用域
3.7 测试失败情况
3.8 匹配器
3.9 使用 describe、context、before 和 after 去除重复
3.10 小结
3.11 问答
3.12 练习
第 4 章 创建有意义的测试数据
4.1 预构件 vs. 固件
4.2 安装 Factory Girl
4.3 开始使用预构件
4.4 使用序列生成唯一的数据
4.5 预构件中的关联
4.6 避免预构件中出现重复
4.7 回调
4.8 合理使用预构件
4.9 小结
4.10 练习
第 5 章 控制器测试
5.1 控制器测试基础
5.2 要验证身份的控制器测试
5.3 测试用户输入
5.4 测试用户输入导致的错误
5.5 处理非 HTML 输出
5.6 小结
5.7 问答
5.8 练习
第 6 章 使用功能测试测试用户界面
6.1 为什么要编写功能测试?
6.2 额外依赖
6.3 一个简单的功能测试
6.4 Capybara DSL
6.5 调试功能测试
6.6 测试 JavaScript 交互
6.7 无界面驱动
6.8 等待 JavaScript 执行完毕
6.9 小结
6.10 练习
第 7 章 使用请求测试测试 API
7.1 请求测试 vs. 功能测试
7.2 测试 GET 请求
7.3 测试 POST 请求
7.4 把控制器测试替换为请求测试
7.5 小结
7.6 练习
第 8 章 去除重复
8.1 辅助模块
8.2 let 实现的惰性加载
8.3 共享情景
8.4 自定义匹配器
8.5 聚合失败
8.6 维护测试的可读性
8.7 小结
8.8 练习
第 9 章 快速编写测试,编写快速的测试
9.1 RSpec 的简练句法
9.2 编辑器提供的便利措施
9.3 驭件和桩件
9.4 标签
9.5 删除非必须的测试
9.6 并行运行测试
9.7 剔除 Rails
9.8 小结
9.9 练习
第 10 章 测试其他功能
10.1 测试文件上传
10.2 测试后台职程
10.3 测试电子邮件发送
10.4 测试 Web 服务
10.5 小结
10.6 练习
第 11 章 迈向测试驱动开发
11.1 功能规划
11.2 由红变绿
11.3 由外而内
11.4 “遇红-变绿-重构”循环
11.5 小结
11.6 练习
第 12 章 最后的建议
先练习编写简单的测试
清楚自己在做什么
可以先试探
写一点代码、测试一点也可以
尽量先编写集成测试
留出时间编写测试
保持简单
不要拐回旧习惯
让测试把代码变得更好
说服其他人编写自动化测试
不断练习
暂别
附录 A Rails 测试相关的更多资源
RSpec 相关
Rails 测试相关
作者简介

作者介绍

作者:Aaron Sumner 开发 Web 应用的经验超过 20 年。最先使用 AppleScript 开发 CGI 应用(真的),然后换用 Perl,随后是 PHP,最后选择了 Ruby 和 Rails。下班后,不写代码时,Aaron 喜欢摄影、打棒球(红雀队加油),看全美大学生篮球联赛(Rock Chalk Jayhawk),还喜欢打保龄球。他和妻子 Elise,还有四只猫和一只狗一起生活在堪萨斯的乡下。

Aaron 个人网站的地址是 http://www.aaronsumner.com。这是他写的第一本书。

Everyday Rails 是 Aaron 的博客,主要介绍 Web 开发者要如何使用 Ruby on Rails 这个框架。博客中的文章会介绍最好用的插件、代码库和实践方法,让应用能完美运行。Everyday Rails 的地址是 http://everydayrails.com。

译者:Andor Chen twitter @Andor_Chen
Andor 是一位父亲、丈夫,也是一名机械工程师。翻译爱好者,已出版几本电子书。偶尔写些代码。关于我的更多信息,请访问我的个人网站:http://about.ac/

大家也喜欢

  • Ruby基础教程(第4版)

    高桥征义   后藤裕藏   松本行弘   何文斯   译

    本书由Ruby之父松本行弘亲自审校并作序推荐。本书支持Ruby 2.0,也附带讲解了可运行于1.9版本的代码,...

  • 坐等更新
    imtinge  发表于 2017-10-26 11:11:56
    推荐