Using RSpec to Describe Included Module Behavior

S

Starr Trader

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?
 
J

Judson Lester

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
 
P

Pat Maddox

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
 
B

Ben Mabey

Pat said:
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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top