使用rspec测试rails而不需要运行所有初始化器?

时间:2014-02-18 23:32:43

标签: ruby-on-rails ruby rspec

假设你正在开发一个rails应用程序,它有很多初始化程序,可以在启动时调用各种外部系统。

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

我知道你可以使用Spork只承担一次这个费用,但有没有办法不招致它?加载所有导轨只是为了一个简单的PORO规范似乎很愚蠢。

1 个答案:

答案 0 :(得分:3)

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