RSpec 3.7 已发布!

Sam Phippen

2017 年 10 月 17 日

RSpec 3.7 刚刚发布!鉴于我们对 语义版本控制 的承诺,对于任何已经使用 RSpec 3 的用户来说,这应该是一个简单的升级,但如果我们引入了任何回归,请告知我们,我们会尽快发布一个包含修复程序的补丁版本。

RSpec 仍然是一个由社区驱动的项目,来自世界各地的贡献者都参与其中。此版本包含来自 27 位不同贡献者的 127 次提交和 31 个合并的拉取请求!

值得注意的是:这是一个比平时规模更小的版本,因为我们希望尽快将 Rails 系统测试集成提供给您。

感谢所有帮助发布此版本的人!

值得注意的变更

Rails: ActionDispatch::SystemTest 集成(系统规范)

在 Rails 5.1 中,添加了一种新的测试类型,称为系统测试。这些测试包装了 capybara 和 Rails,允许从前端 JavaScript 一直到数据库进行全栈测试体验。

长期以来,RSpec 一直拥有 功能规范,它提供了类似的集成。功能规范和系统规范之间存在一些重要的区别,值得列举。

  1. 如果您在功能规范中使用启用 JavaScript 的驱动程序(如 selenium 或 poltergeist),则您的测试将在与 Rails 应用程序不同的进程中运行。这意味着您的测试和被测试代码无法共享数据库事务,因此您无法使用 RSpec 内置的机制来回滚数据库更改,而是需要像 database cleaner 这样的 gem。在系统测试中,Rails 团队已经完成了艰苦的工作,确保这种情况不会发生,因此您可以安全地使用 RSpec 的机制,而无需额外的 gem。
  2. RSpec 的功能规范默认使用 Rack::Test capybara 驱动程序。如果您想使用启用 JavaScript 的测试浏览器,您需要自己管理 capybara 配置。长期以来,这已被证明是使用更高级的集成(如 selenium)时难以正确实现的事情。系统规范默认使用 selenium。Rails 隐藏了配置的难度,它代表您使用 chrome 操作 capybara 和 webdriver。

因此,我们建议 Rails 5.1 用户优先使用系统规范而不是功能规范来进行完整的应用程序集成测试。我们要特别感谢 Eileen Uchitelle,她领导了在 Rails 中实现此功能。

统计数据

组合

rspec-core

rspec-expectations

rspec-mocks

rspec-rails

rspec-support

文档

API 文档

Cucumber 功能

发行说明

RSpec Core

完整变更日志

增强功能

错误修复

RSpec Expectations

完整变更日志

增强功能

RSpec Mocks

完整变更日志

增强功能

错误修复

RSpec Rails

完整变更日志

错误修复

增强功能

RSpec Support

完整变更日志

增强功能

错误修复