Class: Shoulda::FastContext
Instance Attribute Summary
Attributes inherited from Context
#name, #parent, #setup_blocks, #should_eventuallys, #shoulds, #subcontexts, #subject_block, #teardown_blocks
Instance Method Summary collapse
- #build ⇒ Object
-
#run_current_should_blocks ⇒ Object
end of method build.
Methods inherited from Context
#am_subcontext?, #context, #create_test_from_should_hash, #fast_context, #full_name, #initialize, #merge_block, #method_missing, #print_should_eventuallys, #run_all_setup_blocks, #run_all_teardown_blocks, #run_current_setup_blocks, #run_parent_setup_blocks, #setup, #should, #should_eventually, #should_not, #subject, #teardown, #test_methods, #test_unit_class
Constructor Details
This class inherits a constructor from Shoulda::Context
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Shoulda::Context
Instance Method Details
#build ⇒ Object
498 499 500 501 502 503 |
# File 'lib/shoulda/context.rb', line 498 def build run_current_should_blocks subcontexts.each { |context| context.build } print_should_eventuallys end |
#run_current_should_blocks ⇒ Object
end of method build
505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 |
# File 'lib/shoulda/context.rb', line 505 def run_current_should_blocks test_name = ["test:", full_name].flatten.join(' ').to_sym if test_unit_class.instance_methods.include?(test_name.to_s) warn " * WARNING: '#{test_name}' is already defined" end context = self all_shoulds = shoulds test_unit_class.send(:define_method, test_name) do @shoulda_context = context @current_should = nil begin context.run_parent_setup_blocks(self) all_shoulds.each {|should| @current_should = should should[:before].bind(self).call if should[:before] } context.run_current_setup_blocks(self) all_shoulds.each do |should| should[:block].bind(self).call end rescue Test::Unit::AssertionFailedError => e error = Test::Unit::AssertionFailedError.new(["FAILED:", context.full_name, "should", "#{@current_should[:name]}:", e.].flatten.join(' ')) error.set_backtrace e.backtrace raise error ensure context.run_all_teardown_blocks(self) end end end |