From: Ben Mabey Date: 2008-01-18T13:25:55+09:00 Subject: Re: Using RSpec to Describe Included Module Behavior Pat Maddox wrote: > On Jan 17, 2008 12:19 PM, Judson Lester wrote: > >> On Jan 17, 2008 10:23 AM, Starr Trader wrote: >> >>> Greeting all, >>> >>> I'm having difficulties with RSpec. I have a module that adds some >>> interface functions to a class (a la Rails) and I want to test their >>> functionality. (BDD and all you know) >>> >>> I'm not sure how to describe a module like this. It is not a class >>> where I can create an instance directly for testing, I somehow need to >>> create a Class that can have this module included in it. >>> >>> Any ideas? >>> >> Try something like >> >> before do >> @test_me = Object.new >> @test_me.extend MyCoolModule >> end >> > > I would prefer to make a class, because if you intend to use include > rather than extend in production, you ought to spec it that way. Also > lets you take advantage of the included hook, test inheritance cases, > etc. > > klass = Class.new do > include MyCoolModule > end > > o = klass.new > > Pat > > Why not just make a shared behavior and test the classes that you actually include the module in? Or did I misunderstand your question? (Go here: http://rspec.info/documentation/ and search for 'Shared Examle Groups') BTW, you should check out the rspec-users mailing list for these type of questions. -Ben