5

我创建了一个包含安装生成器的 simpe gem,生成器工作正常,但现在我想使用 rspec 测试它,我找到了这个 gem,并尝试测试我的生成器,我的规范代码是:

require 'genspec'
require 'rosalie'

describe :install_generator do

  it "should generate model" do
    subject.should generate("message.rb")
  end
end

rosalie 是 may gem 的名称,现在当我运行它时出现错误:/stuff/work/my_projects/rosalie/lib/rosalie/engine.rb:2:in `': uninitialized constant Rosalie::Rails (NameError)

我的 engine.rb 代码是:

module Rosalie
  class Engine < Rails::Engine

    initializer "rosalie.models.messageable" do
      ActiveSupport.on_load(:active_record) do
        include Rosalie::Models::Messageable
      end
    end
  end
end

有人可以帮我解决这个问题吗?

4

2 回答 2

2

您必须先加载代码,然后再将其包含在某处。

需要或自动加载您的主文件。

这是我的宝石的一个例子。

于 2012-05-03T14:53:06.347 回答
1

您需要在您的 spec_helper.rb 中添加这些代码,并在每个规范中要求 spec_helper。

require File.expand_path("../dummy/config/environment", __FILE__)
require 'rspec/rails'
于 2013-04-23T07:33:51.043 回答