How do I test my Module?

I think I understand basic Class testing, however, how do I test a
Module’s behavior especially (in my case) where the Module will be used
as an extension primarily e.g. object.extend MyModule.

On 9/21/10 6:51 AM, Gene A. wrote:

I think I understand basic Class testing, however, how do I test a
Module’s behavior especially (in my case) where the Module will be used
as an extension primarily e.g. object.extend MyModule.
One option is to extend an object in your spec like so:

describe MyModule do
subject { Object.new.extend(MyModule) }
describe “#foo” do
it “does blah” do
subject.foo.should == “stuff”
end
end
end

I often times will use an OpenStuct to help test modules because they
allow you to easily set the state. For example:

module MyModule
def double
num * 2
end
end

require ‘ostruct’
describe MyModule do
def new_object(hash)
OpenStruct.new(hash).extend(MyModule)
end
describe “#double” do
it “doubles the num var” do
new_object(:num => 2).double.should == 4
end
end
end

HTH,
Ben

Ben M. wrote:

On 9/21/10 6:51 AM, Gene A. wrote:

I think I understand basic Class testing, however, how do I test a
Module’s behavior especially (in my case) where the Module will be used
as an extension primarily e.g. object.extend MyModule.
One option is to extend an object in your spec like so:

Perfect. Thank you.