69142b9 Dec 23, 2016
@erikdoe @tommeier @piotr-tobolski @dblock
307 lines (205 sloc) 10.7 KB
Listing of notable changes by release. More detail is usually found in the Git
commit messages and/or the pull requests.
OCMock 3.4 (2016-12-22)
* OCMock now requires iOS 8 as minimum deployment target
* Managed objects can now be mocked (Alan Fineberg, Kyle Van Essen)
* Notifications with a user info dictionary can be observed and verified
with the macro syntax.
* Now considering structs with unknown names to be the same type as a named
struct, as long as either the actual definition matches or one of them is
* Fixed bug causing verifyWithDelay to be held up by rejects (Nikolay Kasyanov)
* Fixed bug where a mock would not claim conformance to protocols declared in
a superclass (Werner Altewischer)
OCMock 3.3.1 (2016-07-01)
* Now throwing an exception when an attempt is made to stub the init method.
* Fixed crash when trying to mock NSArray.
OCMock 3.3 (2016-04-12)
* Made the use of mock objects thread safe. You still have to setup the mocks
and verify them from a main thread (Ian Anderson)
* Added modern syntax for reject (Piotr Tobolski)
OCMock 3.2.2 (2016-01-20)
* Fixed recently introduced bug that caused crashes when using NULL pointers
with the pass-by-ref argument setter (Ian Anderson)
OCMock 3.2.1 (2016-01-13)
* Added support for tvOS (Nikita Lutsenko)
* Disposing dynamically generated subclasses after use (David Stites)
* Build script now signs frameworks in releases. The signing identity can
be changed in the script.
OCMock 3.2 (2015-10-03)
* Can mock dynamic properties (imhuntingwabbits)
* Can invoke blocks passed as arguments to stubs (Stephen Fortune)
* Stubbed exceptions are no longer re-raised in verify
* Fixed C++ compilation issues (Jonathan Crooke, Daniel Demiss)
* Add module support for the OS X framework (Ian Anderson)
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)
* Switched unit test for OCMock itself to XCTest.
* Added andForwardToRealObject support for class methods (Carl Lindberg)
* Extended OCMockObject with verifyWithDelay (Charles Harley, Daniel
OCMock 2.2.2 (2013-12-19)
* Added implementation for Apple-interal NSIsKind informal protocol (Brian
* 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.
* Improved value macro so it can take constant arguments and expressions. (Carl
* 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
* 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
* 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 occurred 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
* 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
* 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
* 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
* Added support for mocking formal protocols
OCMock 1.6 (2004-08-30)
* MockObject and Recorder now inherit from NSProxy.