【发布时间】:2012-11-12 17:14:03
【问题描述】:
当我使用带有模型/视图/控制器的rails generate 命令时,使用 rails 和 rspec 很容易让 rspec 为我生成必要的文件。但现在我想为我编写的模块编写规范。该模块在/lib/my_module.rb 中,所以我在/spec/lib/my_module_spec.rb 中创建了一个规范
我遇到的问题是,当我尝试执行 rspec spec/ 时,文件 my_module_spec.rb 正在运行,但在 lib/my_module.rb 中找不到对我的模块的引用。这样做的正确方法是什么?
仅供参考,my_module_spec.rb 文件中确实已经包含 require 'spec_helper'
require 'spec_helper'
describe "my_module" do
it "first test"
result = MyModule.some_method # fails here because it can't find MyModule
end
end
【问题讨论】:
-
您是否在 my_module_spec.rb 中包含该模块?能否提供出处?
-
@Jasper 我没有。但是当我使用模型/视图/控制器时,我也不必这样做。
-
是否需要相关规范中的模块源文件?
require "#{Rails.root}/lib/my_module.rb"我遇到了与您所看到的类似的问题,这与下面 Jasper 的解决方案相结合,让我到达了我需要的地方。 -
@jaydel 很有趣,我希望有一种不那么手动的方法(类似于模型/控制器/视图),但我想情况并非如此。
-
@Brand 也许您没有在 application.rb 中包含 lib 文件夹?例如。 'config.autoload_paths
标签: ruby-on-rails ruby rspec