2

我已经发布了我的第一个 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上找到整个源代码。

4

1 回答 1

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
于 2012-09-21T23:40:26.303 回答