Module: MrProper
- Defined in:
- lib/mrproper/dsl.rb,
lib/mrproper/base.rb,
lib/mrproper/errors.rb,
lib/mrproper/data_block.rb
Defined Under Namespace
Classes: DSL, DataBlock, FalsableProperty
Instance Method Summary collapse
Instance Method Details
#properties(name, &block) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/mrproper/base.rb', line 3 def properties(name, &block) dsl = MrProper::DSL.new dsl.instance_eval(&block) Class.new(Test::Unit::TestCase).class_eval do eval("def self.name; #{name.inspect}; end") dsl.properties.each do |, test_block| define_method "test_property: #{.inspect}" do dsl.data_blocks.each do |data_block| data_block.data.each do |data| begin instance_exec(data, &test_block) rescue Test::Unit::AssertionFailedError, MiniTest::Assertion => e raise FalsableProperty.new("Property #{.inspect} is falsable for data #{data.inspect}\n#{e.}") end end end end end end end |