How to include ActiveRecord in gem tests?
I'm trying to use Model < ActiveRecord::Base in one of my gem tests with shoulda and I'm getting the following error
./test/model.rb:1:in `require': no such file to load -- active_record (LoadError)
Without this call, I'm getting this error
开发者_开发百科./test/model.rb:1: uninitialized constant ActiveRecord (NameError)
Help! I need a barebones AR model for my tests :)
my_gem/test/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/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
Disclaimer: I'm very new to testing. This is my first gem and I wanted to make sure I was doing things the "right" way :)
If you want to use it outside of a Rails application, you need to also require 'rubygems'
I the goal of your gem is to be used inside a Rails app, and if it is your first gem, I would recommend using enginex to gain some time. Granted, it's originally supposed to help making engines, but the included testing saves a lot of hassle...
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论