假设您正在开发一个 Rails 应用程序,它有很多初始化程序,这些初始化程序会在启动时调用各种外部系统。
当使用 rspec-rails 运行 rspec 时,它会运行所有初始化器,即使您的测试很简单,不需要 rails 基础设施。
我知道您可以使用 Spork 只产生一次这种成本,但有没有办法完全不产生它?仅仅为了一个简单的 PORO 规范而加载所有 rails 似乎很愚蠢。
最佳答案
- 不要使用 spork。如果您想使用预加载器,请查看 zeus 或 spring。
- 您不需要加载整个 Rails 环境来测试不依赖于 Rails 的东西。这可以很简单,例如明确要求每个规范所需的依赖项,或者为非 Rails 事物创建一个完全独立的 minimal_spec_helper 或为 Rails 事物创建一个 rails_spec_helper。
- 你的初始化器真的“调用各种外部系统”吗?如果这听起来像是您的初始化程序正在进行外部网络/HTTP 调用,那听起来是个糟糕的主意。
关于ruby-on-rails - 使用 rspec 测试 rails 而不需要运行所有初始化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21867846/