Listing of notable changes by release. More detail is usually found in the Git commit messages and/or the pull requests. OCMock 3.1.4 / 3.1.5 (2015-08-26) * Fixed deployment target in podspec OCMock 3.1.3 (2015-08-12) * Now throwing exception when trying to create mocks for nil (Nick Gravelyn) * Fixed ARC related bug when boxing macro args (Richard Ross) * Added target for dynamic iOS framework, which makes OCMock compatible with Carthage (Piet Brauer) * Memory management and other small bug fixes OCMock 3.1.2 (2015-01-08) * Fixed bugs around reject and expectation orders (Mason Glidden, Ben Asher) * Small adjustments to build file and dependencies OCMock 3.1.1 (2014-08-23) * Fixed a recently introduced bug that resulted in class arguments and return values not to be considered objects (Patrick Hartling, Max Shcheglov) OCMock 3.1 (2014-08-22) * Converting number types to make andReturn more intuitive (Carl Lindberg) * Macros now silence warnings about unused return values (Gordon Fontenot) * Added isKindOfClass constraint (Ash Furrow) * Performance and stability improvements. As a result it is no longer possible use verify-after-running to verify certain methods: - All methods implemented by NSObject and categories on it - Private methods in core Apple classes, ie. the class name has an NS or UI prefix and the method has an underscore prefix and/or suffix. OCMock 3.0.2 (2014-07-07) * Fixed podspec OCMock 3.0.1 (2014-07-06) * Fixed bug that prevented stubs from returning nil * Fixed bug related to handling of weak references * Improved error message when trying to mock undefined method * Added support for matching of char* arguments OCMock 3.0 (2014-06-12) * Added macro for verify with delay * Fixed several critical bugs * Allowing nil as block in stub action. With partial mocks this makes it possible to overwrite a method to do nothing (Sam Stigler) * More descriptive messages when trying to verify unknown method OCMock 3.0.M3 (2014-05-31) * Changed license to Apache 2 license * Added support for verify-after-run for class methods and for methods sent directly to the real object covered by a partial mock. * Using a temporary meta class subclass for mocking class methods, enabling full clean-up. As a consequence class methods mocked on a given class are no longer mocked in all subclasses. * Throwing descriptive exception when attempting to create partial mock on toll-free bridged classes and tagged pointers (Mark Larsen) OCMock 3.0.M2 (2014-05-07) * Added support from verify-after-run. Only works for methods that are sent to a mock object. Does not work for classes and methods sent directly to the real object covered by a partial mock. * Failures without location are now thrown as OCMockTestFailure exception, not as NSInternalInconsistencyException OCMock 3.0.M1 (2014-04-26) * Added macros for modern syntax * Automatic deregistration of observer mocks OCMock 2.2.4 (2014-04-04) 2014-04-05 * Switched unit test for OCMock itself to XCTest. * Added andForwardToRealObject support for class methods (Carl Lindberg) * Extended OCMockObject with verifyWithDelay (Charles Harley, Daniel Doubrovkine) OCMock 2.2.2 (2013-12-19) * Added implementation for Apple-interal NSIsKind informal protocol (Brian Gerstle) * Various fixes for method with structure returns (Carl Lindberg) * Added a specially typed method for object references to OCMArg. * Fixed bug that caused matching to be aborted on first ignored non-object arg. * Fixed a bug where partial mocks wouldn't clean up mocked class methods. (we7teck) * Improved value macro so it can take constant arguments and expressions. (Carl Lindberg) * Fixed a bug that caused crashes when methods that require "special" struct returns were mocked in partial mocks. (Carl Lindberg) OCMock 2.2.1 (2013-07-24) * Fixed several bugs regarding class method mocking in class hierarchies. * Fixed bug preventing the same class method to be expected more than once. OCMock 2.2 (2013-07-02) * Can ignore non-object arguments on a per-invocation basis. * Added constraint for any selector. OCMock 2.1.2 (2013-06-19) * Constraints implement NSCopying for OS X 10.9 SDK compatibility. OCMock 2.1 (2013-03-15) * Stubbing an object creation method now handles retain count correctly. * Added support for forwardingTagetForSelector: (thanks to Jeff Watkins) * Added class method mocking capability to class mock objects * Added implementation of isKindOfClass: to class mock objects * Allowing to set non-object pass-by-ref args (thanks to Glenn L. Austin) * Calling a previously expected method on a partial mock is no longer an error. OCMock 2.0 (2012-03-02) * Avoiding deprecated method to convert to a C string (thanks to Kushal Pisavadia) * Recreated project from scratch with new conventions in Xcode 4.2 (thanks to Matt Di Pasquale) * Arguments only need to be equal, don't have to have same class OCMock 1.77 (2011-02-15) * Added feature to explicitly disable a partial mock * Updated example to work with iOS 4.2. OCMock 1.70 (2010-08-21) * Added feature to explicitly reject methods on nice mocks (thanks to Heath Borders) * Added feature to forward method to real object from partial mock (thanks to Marco Sandrini) * Fix to allow block arguments (thanks to Justin DeWind) * Now building OCMock library for simulator (i386) and device (armv7) * Updated example to run tests on device * Changed OCMOCK_VALUE macro to be iOS compatible (thanks to Derek Clarkson) * Added a new target to build a static library for iOS use * Created an example showing how to use OCMock in an iOS project * Various small clean-ups; no change in functionality (thanks to Jonah Williams) * Added block constraints and invocation handler (thanks to Justin DeWind) OCMock 1.55 (2009-10-16) * Fixed broken test for array argument descciptions (Craig Beck) * Disambiguated mock table method name to avoid compiler warning * Renamed some variables to avoid warnings when using -Wshadow * Partial mocks are now deallocated as they should * Fixed problems that occured when using mocks as arguments * OnCall methods now have same signature as replaced ones. * Fixed possible retain bug (Daniel Eggert) * Added feature that allows to verify expectations are called in sequence. * Improved detection of unqualified method return type. * Fixed bug that caused crash when using method swizzling with void return type. * Added support for calling arbitrary methods when stubbed methods are invoked. * Added support for posting notifications (based on Jean-Francois Dontigny's code) * Fixed bug around complex type encodings (Jean-Francois Dontigny) * Partial mocks now work on object reference and self (thanks to Mike Mangino) * Added partial mocks (calls to the original object reference cannot be mocked) OCMock 1.42 (2009-05-19) * Mock observers now handle user infos on notifications. * Added inital support for mock observers (loosely based on Dave Dribbin's idea) * Moved factory methods from OCMConstraint to OCMArg * Added pass by ref argument setters * Linked install name now uses @rpath (Dave Dribbin) * Added support for respondsToSelector (Dave Dribin) * Added constraint for any pointer * Now comparing selectors as strings (Dado Colussi) OCMock 1.29 (2008-07-07) * Resetting invocation target in recorder to avoid retain cycles. * Added optional integration with hamcrest for constraints * Now building quad-fat; the 64-bit versions are somewhat experimental though * Using new functions to deal with protocols (Evan Doll) * Added support for void* parameters (Tuukka Norri) * Fixed a bug that could caused crashes when non-char const pointers were described * Fixed bug to allow mocking of methods with type qualifieres (Nikita Zhuk) * Added a simple constraint implementation. OCMock 1.17 (2007-06-04) * Now re-throwing fail-fast exceptions, for unexpected invocations for example, when verify is called; in case the first throw is ignored by a framework. * Added nice mocks, i.e. mocks that don't raise on unknown methods (Mark Thomas) * Fixed bug that prevented expectations after invocations (M. Scott Ford) * Added possibility to throw an exception, based on code by Justin DeWind * Added Evan Doll's bugfix, which forwards conformsToProtocol: methods when necessary * Added the ability to match struct arguments, based on code contributed by Daniel Eggert * Better description of arguments, based on code contributed by Jeremy Higgs * Added the ability to create multiple identical expectations on the mock object (Jeremy Higgs) * Added the ability to mock out nil arguments (Jeremy Higgs) * Added slightly modified version of Jon Reid's contribution, which adds the possibility to stub primitive return values. * Added Jon Reid's bugfix that prevents a crash when trying to stub an unknown method on a protocol. OCMock 1.10 (2005-10-03) * Upgraded to build and run tests using the OCUnit that is now part of XCode. * Added XCode 2.1 project * Added Richard Clark's contribution, which provides support for scalar arguments. * Added support for mocking formal protocols OCMock 1.6 (2004-08-30) * MockObject and Recorder now inherit from NSProxy.