从 RSpec 2 升级

RSpec 3 包含许多重大更改,但我们希望将其打造为迄今为止最顺畅的主要版本 gem 升级体验。为了帮助您完成升级过程,我们与 RSpec 3 并行开发了 RSpec 2.99。3.0 中的每个重大更改都对应着 2.99 中的相应弃用。与其仅仅提供一份描述所有重大更改(其中大多数只影响极少数用户!)的通用升级文档,RSpec 2.99 会为您提供一份针对您的项目量身定制的详细升级清单。

此外,中岛裕二 创建了 Transpec - 一款非常棒的工具,可以自动升级大多数 RSpec 套件。我们在几个项目上尝试过它,对它的效果感到非常惊讶。

如果您使用 rspec-rails,您可能需要阅读针对该 gem 的 升级说明

分步说明

  1. 从 RSpec 2.x 上的绿色测试套件开始。
  2. 安装 RSpec 2.99。
  3. 检查您的测试套件,确保它仍然是绿色的。(它应该是绿色的,但我们可能犯了错误 - 如果它破坏了任何东西,请报告错误!)。现在是提交更改的好时机。
  4. 您会注意到在规格运行结束时打印了一堆弃用警告。这些警告可能会被截断,因为我们不想用相同的弃用警告一遍又一遍地骚扰您。要获取完整的弃用列表,您可以使用 --deprecation-out path/to/file 命令行选项将它们管道到文件。
  5. 如果您想了解所有被弃用的内容,最好通读弃用消息。在某些情况下,您有选择 - 例如,您可以继续通过提取的 rspec-collection_matchers gem 使用 have 集合基数匹配器,或者将预期表达式重写为类似 expect(list.size).to eq(3) 的内容。
  6. 安装 transpec,因为它可以为您节省大量时间。(请注意,它不需要添加到您的 Gemfile 中:您可以在捆绑包的上下文之外,将 transpec 作为独立的可执行文件运行)。
  7. 在您的项目上运行 transpec。查看 transpec --help自述文件 以获取完整选项列表。
  8. 运行测试套件(它应该仍然是绿色的,但最好检查一下!),然后提交更改。
  9. 如果有任何剩余的弃用警告(transpec 无法处理所有您可能遇到的警告),请处理它们。
  10. 一旦您在 RSpec 2.99 上获得了无弃用警告的测试套件,您就可以升级到 RSpec 3。安装 RSpec 3。
  11. 运行您的测试套件。它应该仍然是绿色的。如果任何东西失败了,请打开 GitHub 问题 - 我们认为这是一个错误!请注意,您可能仍然会在 RSpec 3 上收到一些 2.99 上没有的额外弃用警告。这是正常的 - 有些东西我们无法在 2.99 中轻松弃用并在 3.0 中删除,因此它们在 3.0 中触发弃用,并计划在 RSpec 4 中删除它们。
  12. 我们建议再次运行 transpec。有些更改只有在您的项目使用 RSpec 3 时,transpec 才能完成。
  13. 提交更改并享受使用最新 RSpec 版本的乐趣!