On 9/21/10 6:51 AM, Gene Angelo 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
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users