如何使用rspec测试gem中的助手?

时间:2012-09-21 22:52:17

标签: ruby-on-rails rspec gem

我已经发布了我的第一个rails gem但尚未包含任何测试。这个gem只是一个简单的帮助器,我想用rspec测试。但是我不知道如何使用rspec在gem中测试帮助器。

我尝试创建文件spec / helper / development_ribbon_helper_spec.rb:

require 'spec_helper'
describe DevelopmentRibbonHelper do
end

但是当我执行rspec时,我收到了这个错误:

development_ribbon_helper_spec.rb:3:in `<top (required)>': uninitialized constant DevelopmentRibbonHelper (NameError)

您可以在github上找到完整的源代码。

1 个答案:

答案 0 :(得分:2)

看起来您可能正在尝试编写rails引擎gem,对吗?由于您的帮助文件位于lib /之外,因此您的spec_helper需要知道如何加载rails引擎。

执行此操作的一种方法是在spec /目录中创建虚拟rails应用程序。此帖子中详细介绍了此设置:http://reinteractive.net/posts/2-start-your-engines

或者,您可以将帮助文件移动到lib / development_ribbon并在development_ribbon.rb文件中将其命令:

require "development_ribbon/development_ribbon_helper"

然后,在使用gem的rails应用程序中,您可以在application_helper.rb中包含帮助程序

module ApplicationHelper
  include DevelopmentRibbon::DevelopmentRibbonHelper
end