ruby-on-rails - 使用 rspec 测试 rails 而不需要运行所有初始化程序?

标签 ruby-on-rails ruby rspec

假设您正在开发一个 Rails 应用程序,它有很多初始化程序,这些初始化程序会在启动时调用各种外部系统。

当使用 rspec-rails 运行 rspec 时,它会运行所有初始化器,即使您的测试很简单,不需要 rails 基础设施。

我知道您可以使用 Spork 只产生一次这种成本,但有没有办法完全不产生它?仅仅为了一个简单的 PORO 规范而加载所有 rails 似乎很愚蠢。

最佳答案

  1. 不要使用 spork。如果您想使用预加载器,请查看 zeus 或 spring。
  2. 您不需要加载整个 Rails 环境来测试不依赖于 Rails 的东西。这可以很简单,例如明确要求每个规范所需的依赖项,或者为非 Rails 事物创建一个完全独立的 minimal_spec_helper 或为 Rails 事物创建一个 rails_spec_helper。
  3. 你的初始化器真的“调用各种外部系统”吗?如果这听起来像是您的初始化程序正在进行外部网络/HTTP 调用,那听起来是个糟糕的主意。

关于ruby-on-rails - 使用 rspec 测试 rails 而不需要运行所有初始化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21867846/

相关文章:

ruby-on-rails - rails 3 : How to prevent image caching when the image is specified in the CSS file?

ruby-on-rails - 无法在 Windows 7 上安装 Rmagick 和 Imagemagick

ruby-on-rails - Ruby %r{ } 表达式

ruby-on-rails - 未使用 minitest 加载固定装置来测试服务

Ruby 比较运算符? == 与 ===

ruby-on-rails - 我应该如何使用 Rspec 和 Capybara 测试 Omniauth?

ruby-on-rails - 如何测试这个 CSV 导入 rake 任务?

ruby-on-rails-3 - Cucumber+Capybara 中的语法错误

ruby-on-rails - rails BDD : Cucumber alternatives

ruby - 使用 rake testtask 测试一组特定的测试用例