Hello all,
I trust you are having a good one.
I'm just trying out macros and my first one is taken from the RSpec book
which replaces .....
@obj.should_not be_valid
@obj.should have(1).error_on(:attr)
with the macro....
should_require_attribute Model, :attribute
My first attempt is basic but already I have problems.
The following is called as
it_should_require_attribute Model, :attribute
but I would rather call if as
it_should_require_attribute @model, :attribute.
I prefer this call as I want to use what has been setup in my before(:each)
block -- setting @model and all other housekeeping stuff required for the
tests -- and I can then remove dut_instance = dut.new from the macro.
Alas, my before(:each) block is not being called!! I thought it would be
called when the it in the macro is met.
module ModelMacros
## dut - Domain Under Test
## aut - Attribute Under Test
def it_should_require_attribute(dut, aut)
it "is not valid with missing #{aut}" do
dut_instance = dut.new
dut_instance.send("#{aut}=", nil)
dut_instance.should_not be_valid
dut_instance.should have(1).error_on(aut.to_sym)
end
end
end
Could anyone give me some tips on how to approach macros better for
seamless integration into my tests.
Thank you
-ants
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users