CHANGES

Path: CHANGES
Last Update: Thu Dec 02 01:16:41 +0000 2010

1.0.2

1.0.1

  • Removed new_instance_of for Ruby 1.9.2 compatibility. instance_of is now an alias for any_instance_of.
  • Compatible with Ruby 1.9.2

1.0.0

  • Added any_instance_of (aliased by all_instances_of), which binds methods directly to the class (instead of the eigenclass).
  • Subclasses of a injected class do not have their methods overridden.
  • any_instance_of and new_instance_of now have a block syntax

0.10.11

  • Added RR.blank_slate_whitelist
  • Fixed class_eval method redefinition warning in jruby

0.10.10

  • Suite passes for Ruby 1.9.1

0.10.9

  • Fixed 1.8.6 bug for real

0.10.8

  • Fixed 1.8.6 bug

0.10.7

  • Fixed issue with DoubleInjections binding to objects overriding the method method.

0.10.6

0.10.5

0.10.4

  • Handle lazily defined methods (where respond_to? returns true yet the method is not yet defined and the first call to method_missing defines the method). This pattern is used in ActiveRecord and ActionMailer.
  • Fixed warning about aliasing instance_exec in jruby. github.com/btakita/rr/issues#issue/9 (Patch by Nathan Sobo)

0.10.2

0.10.1

  • Fixed issue with DoubleInjection not invoking methods that are lazily created [github.com/btakita/rr/issues/#issue/4]. Identified by davidlee (github.com/davidlee)
  • Fixed issue with mock.proxy and returns [github.com/btakita/rr/issues/#issue/2]. Identified by trogdoro (github.com/trogdoro)
  • 0.10.0
  • Method is no longer invoked if respond_to? returns false. This was in place to support ActiveRecord association proxies, and is no longer needed.
  • 0.9.0
  • instance_of Doubles now apply to methods invoked in the subject‘s initialize method.
  • 0.8.1
  • Fixed exception where the Subject uses method delegation via method_missing (e.g. certain ActiveRecord AssociationProxy methods)
  • 0.8.0
  • Fixed compatability issues with Ruby 1.9
  • Aliased any_number_of_times with any_times
  • Better error messages for have_received and assert_received matchers (Patch by Joe Ferris)
  • Better documentation on RR wilcard matchers (Patch by Phil Arnowsky)
  • 0.7.1
  • Performance improvements
  • 0.7.0
  • Added spies (Patchs by Joe Ferris, Michael Niessner & Mike Mangino)
  • Added strongly typed reimplementation doubles (Patch by Michael Niessner)
  • 0.6.2
  • Fixed DoubleDefinition chaining edge cases
  • 0.6.1
  • DoubleDefinitionCreatorProxy definition eval block is instance_evaled when the arity is not 1. When the arity is 1, the block is yielded with the DoubleDefinitionCreatorProxy passed in.
  • 0.6.0
  • Friendlier DoubleNotFound error message
  • Implemented Double strategy creation methods (mock, stub, proxy, instance_of, and ! equivalents) on DoubleDefinition
  • Implemented hash_including matcher (Patch by Matthew O‘Conner)
  • Implemented satisfy matcher (Patch by Matthew O‘Conner)
  • Implemented DoubleDefinitionCreator#mock!, stub!, and dont_allow!
  • Modified api to method chain Doubles
  • Fix conflict with Mocha overriding Object#verify
  • 0.5.0
  • Method chaining Doubles (Patch by Nick Kallen)
  • Chained ordered expectations (Patch by Nick Kallen)
  • Space#verify_doubles can take one or more objects with DoubleInjections to be verified
  • 0.4.10
  • DoubleDefinitionCreatorProxy does not undef object_id
  • Fixed rdoc pointer to README
  • 0.4.9
  • Proxying from RR module to RR::Space.instance
  • 0.4.8
  • Fixed issue with Hash arguments
  • 0.4.7
  • Improved error message
  • 0.4.6
  • Added Double#verbose and Double#verbose?
  • 0.4.5
  • Fixed doubles for == and eql? methods
  • 0.4.4
  • Doc improvements
  • Methods that are not alphabetic, such as ==, can be doubles
  • 0.4.3
  • Doc improvements
  • Cleanup
  • Finished renaming scenario to double
  • 0.4.2
  • Renamed DoubleInsertion to DoubleInjection to be consistent with Mocha terminology
  • 0.4.1
  • Fixed backward compatability issues with rspec
  • Renamed Space#verify_double_insertions to verify_doubles
  • 0.4.0
  • Documentation improvements
  • Renamed Double to DoubleInsertion
  • Renamed Scenario to Double
  • 0.3.11
  • Fixed [13724] Mock Proxy on Active Record Association proxies causes error
  • 0.3.10
  • Fixed [13139] Blocks added to proxy sets the return_value and not the after_call callback
  • 0.3.9
  • Alias probe to proxy
  • 0.3.8
  • Implemented [13009] Better error mesage from TimesCalledMatcher
  • 0.3.7
  • Fixed [12928] Reset doubles fails on Rails association proxies
  • 0.3.6
  • Fixed [12765] Issues with ObjectSpace._id2ref
  • 0.3.5
  • trim_backtrace is only set for Test::Unit
  • 0.3.4
  • Implemented instance_of
  • 0.3.3
  • Fixed [12495] Error Probing method_missing interaction
  • 0.3.2
  • Fixed [12486] ScenarioMethodProxy when Kernel passed into instance methods
  • 0.3.1
  • Automatically require Test::Unit and Rspec adapters
  • 0.3.0
  • ScenarioCreator strategy method chaining
  • Removed mock_probe
  • Removed stub_probe
  • 0.2.5
  • mock takes method_name argument
  • stub takes method_name argument
  • mock_probe takes method_name argument
  • stub_probe takes method_name argument
  • probe takes method_name argument
  • dont_allow takes method_name argument
  • do_not_allow takes method_name argument
  • 0.2.4
  • Space#doubles key is now the object id
  • Fixed [12402] Stubbing return value of probes fails after calling the stubbed method two times
  • 0.2.3
  • Added RRMethods#rr_verify and RRMethods#rr_reset
  • 0.2.2
  • Fixed "singleton method bound for a different object"
  • Doing Method aliasing again to store original method
  • 0.2.1
  • Added mock_probe
  • Added stub_probe
  • Probe returns the return value of the passed in block, instead of ignoring its return value
  • Scenario#after_call returns the return value of the passed in block
  • Not using method aliasing to store original method
  • Renamed DoubleMethods to RRMethods
  • Added RRMethods#mock_probe
  • 0.1.15
  • Fixed [12333] Rebinding original_methods causes blocks not to work
  • 0.1.14
  • Introduced concept of Terminal and NonTerminal TimesCalledMatchers
  • Doubles that can be called many times can be replaced
  • Terminal Scenarios are called before NonTerminal Scenarios
  • Error message tweaking
  • Raise error when making a Scenarios with NonTerminal TimesMatcher Ordered
  • 0.1.13
  • Fixed [12290] Scenario#returns with false causes a return value of nil
  • 0.1.12
  • Fixed bug where Creators methods are not removed when methods are defined on Object
  • Fixed [12289] Creators methods are not removed in Rails environment
  • 0.1.11
  • Fixed [12287] AtLeastMatcher does not cause Scenario to be called
  • 0.1.10
  • Fixed [12286] AnyArgumentExpectation#expected_arguments not implemented
  • 0.1.9
  • Added DoubleMethods#any_times
  • Added Scenario#any_number_of_times
  • 0.1.8
  • TimesCalledError Message Formatted to be on multiple lines
  • ScenarioNotFoundError Message includes all Scenarios for the Double
  • ScenarioOrderError shows list of remaining ordered scenarios
  • 0.1.7
  • Fixed [12194] Double#reset_doubles are not clearing Ordered Scenarios bug
  • Added Space#reset
  • Space#reset_doubles and Space#reset_ordered_scenarios is now protected
  • Added Scenario#at_least
  • Added Scenario#at_most
  • 0.1.6
  • [12120] probe allows a the return value to be intercepted
  • 0.1.5
  • TimesCalledExpectation says how many times were called and how many times called were expected on error
  • 0.1.4
  • TimesCalledError prints the backtrace to where the Scenario was defined when being verified
  • Error message includes method name when Scenario is not found
  • 0.1.3
  • Fixed issue where Double#placeholder_name issues when Double method name has a ! or ?
  • 0.1.2
  • Scenario#returns also accepts an argument
  • Implemented Scenario#yields
  • 0.1.1
  • Trim the backtrace for Rspec and Test::Unit
  • Rspec and Test::Unit integration fixes
  • 0.1.0
  • Initial Release

[Validate]