== Hardmock Strict, ordered mock objects using very lightweight syntax in your tests. == How The basic procedure for using Hardmock in your tests is: * require 'hardmock' (this happens automatically when being used as a Rails plugin) * Create some mocks * Setup some expectations * Execute the target code * Verification of calls is automatic in =teardown= The expectations you set when using mocks are strict and ordered. Expectations you declare by creating and using mocks are all considered together. * Hardmock::Mock#expects will show you more examples * Hardmock::SimpleExpectation will teach you more about expectation methods == Example create_mocks :garage, :car # Set some expectations @garage.expects.open_door @car.expects.start(:choke) @car.expects.drive(:reverse, 5.mph) # Execute the code (this code is usually, obviously, in your class under test) @garage.open_door @car.start :choke @car.drive :reverse, 5.mph verify_mocks # OPTIONAL, teardown will do this for you Expects @garage.open_door, @car.start(:choke) and @car.drive(:reverse, 5.mph) to be called in that order, with those specific arguments. * Violations of expectations, such as mis-ordered calls, calls on wrong objects, or incorrect methods result in Hardmock::ExpectationError * verify_mocks will raise VerifyError if not all expectations have been met. == Download and Install * Homepage: http://hardmock.rubyforge.org * GEM or TGZ or ZIP: http://rubyforge.org/frs/?group_id=2742 * Rails plugin: script/plugin install * SVN access: svn co svn://rubyforge.org/var/svn/hardmock/trunk * Developer SVN access: svn co svn://developername@rubyforge.org/var/svn/hardmock/trunk == Author * David Crosby crosby at http://atomicobject.com * (c) 2006,2007 Atomic Object LLC