【问题标题】:How to test a helper within a gem with rspec?如何使用 rspec 在 gem 中测试助手?
【发布时间】:2012-09-14 09:13:06
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails rspec gem


    【解决方案1】:

    看起来您可能正在尝试编写 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多