[rspec-users] How do I isolation test against different gem versions?

Rick DeNatale rick.denatale at gmail.com
Sun May 23 12:54:13 EDT 2010


On Sun, May 23, 2010 at 11:41 AM, Brian Cardarella
<bcardarella at gmail.com> wrote:
> I would like to support both ActiveRecord 2.x and ActiveModel 3.x for
> a given library. It is not clear to me how to write tests for this. If
> I require 'active_record' then all of the dependencies are also loaded
> and are now in the load path as well as the Gem loaded list.
> Considering that AR and AM share dependencies but of different
> versions conflicts occur.
>
> Is this possible? The difference in code is not enough to warrant
> breaking into separate gems.

I do something similar for RiCal, which works using either
activesupport or the tzinfo gem.  I've set up rake tasks to run the
specs with either one.

What I do is to have an auxiliary ruby file to do the right require
which the spec task invokes via the -r option.

You should be able to do something similar by having the auxiliary
files use the gem directive to specify a particular version of
active_record.

Have a look at http://github.com/rubyredrick/ri_cal/tree/master/tasks/

Particularly spec.rake and the files in the gem_loader sub directory.

HTH


-- 
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Github: http://github.com/rubyredrick
Twitter: @RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale


More information about the rspec-users mailing list