Using RSpec to Describe Included Module Behavior

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?

On Jan 17, 2008 10:23 AM, Starr T. [email protected] wrote:

Any ideas?
Try something like

before do
@test_me = Object.new
@test_me.extend MyCoolModule
end

On Jan 17, 2008 12:19 PM, Judson L. [email protected] wrote:

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

Pat M. wrote:

I’m not sure how to describe a module like this. It is not a class
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: RSpec documentation and search for ‘Shared Examle
Groups’)

BTW, you should check out the rspec-users mailing list for these type of
questions.

-Ben