如何在gem测试中包含ActiveRecord?

时间:2011-05-18 20:27:53

标签: ruby-on-rails-3 unit-testing activerecord gem shoulda

我正在尝试在我的一个宝石测试中使用Model < ActiveRecord::Base和shoulda,我收到以下错误

  

./ test / model.rb:1:在`require'中:没有要加载的文件 - active_record(LoadError)

没有这个电话,我收到了这个错误

  

./ test / model.rb:1:未初始化的常量ActiveRecord(NameError)

帮助!我的测试需要一个准系统AR模型:)


my_gem /测试/ model.rb

require 'active_record' # <= this fails

class Model < ActiveRecord::Base # <= I need a barebones AR model here
  acts_as_flaggable
end

my_gem /测试/ test_acts_as_flaggable.rb

require 'helper'
require 'model'

class TestActsAsFlaggable < Test::Unit::TestCase
  context "a model" do

    setup do
      @model = Model.new
    end

    should "be able to set flag" do
      @model.flag[:foo] = "bar"
      assert_equal "bar", @model.flag[:foo]
    end

    should "get default value for unset flags" do
      @model = User.new
      assert_equal false, @model.flag[:some_unset_flag]
    end

  end
end

免责声明:我对测试非常陌生。这是我的第一个宝石,我想确保我以“正确”的方式做事:)

1 个答案:

答案 0 :(得分:2)

如果您想在Rails应用程序之外使用它,您还需要require 'rubygems'

我的宝石的目标是在Rails应用程序中使用,如果它是你的第一个宝石,我建议使用enginex来获得一些时间。当然,它本来应该有助于制造引擎,但包含的测试可以节省很多麻烦......