| Listing of notable changes by release. More detail is usually found in the Git |
| commit messages and/or the pull requests. |
| |
| OCMock 3.9.3 (2023-11-15) |
| |
| * Removed visionOS from podspec because it's not fully supported yet. |
| |
| |
| OCMock 3.9.2 (2023-10-04) |
| |
| * Added Mac Catalyst architecture to dist build. (Maksym Koshtenko) |
| * Added visionOS to podspec. This is experimental, and there's no official |
| support for visionOS in OCMock until it's available outside the beta. |
| * Stopped forwarding C++ constructors and destructors when using partial |
| mocks (Tom Burgin) |
| * Fixed potential crashes when using OCMPassByRefSetters. (Dave MacLachlan) |
| |
| |
| OCMock 3.9.1 (2021-10-31) |
| |
| * Removed unneeded excludes in package file to avoid warnings. |
| |
| |
| OCMock 3.9 (2021-10-26) |
| |
| * Added support for Swift Package Manager. (Paul Beusterien) |
| * Using Swift Package Manager for dependencies. |
| * Changed binary distribution to XCFramework. |
| * Added setting in podspec to disable bitcode. (Adil Hussain) |
| * Various bug-fixes and improvements to developer experience. |
| |
| |
| OCMock 3.8.1 (2020-12-30) |
| |
| * Restored compatibility with Xcode 11. Please note: support of older versions |
| of Xcode is not guaranteed. |
| |
| |
| OCMock 3.8 (2020-12-23) |
| |
| * Added support for ARM-based Macs. Unfortunately, this means that the hack to |
| combine the device targets with the simulator targets no longer works. The |
| binary distribution will be simulator only now. |
| * Stubs can now fulfill XCTest expectations. This requires OCMock to link |
| against XCTest; except on watchOS where it's not supported. (Dave MacLachlan) |
| * Added two new stub actions to help with debugging. (Dave MacLachlan) |
| * Classes can block OCMock from creating mocks. (Dave MacLachlan) |
| * Added function to determine whether a class is a dynamically created mock |
| class or a subclass of one. |
| * Deprecated notification observer mocks. This can now be done with XCTest. |
| * Various bug-fixes and improvements to developer experience. |
| |
| |
| OCMock 3.7.1 (2020-07-26) |
| |
| * Fixed a bug that caused double-counting of method invocations on partial |
| mocks under certain circumstances. |
| |
| |
| OCMock 3.7 (2020-07-15) |
| |
| * Fixed mocking init methods when using ARC. This worked before but could |
| result in memory related crashes. (Dave MacLachlan) |
| * Added support for non-escaping blocks. (Dave MacLachlan) |
| * Numerous bug-fixes and improvements to developer experience, e.g. clearer |
| error messages. (Dave MacLachlan) |
| |
| |
| OCMock 3.6 (2020-02-16) |
| |
| * Added support for quantifiers. Please see documentation section 3.3 as well |
| as #302 for details |
| * Added preprocessor macros to disable short syntax (in case of clashes). See |
| section 9.6. for details. |
| * Set up dependency management with Carthage. This means that in order to |
| build OCMock from source you must have Carthage installed on your system. |
| See https://github.com/Carthage/Carthage for details. You do not need to have |
| Carthage installed to use OCMock, and if you want to use OCHamcrest with |
| OCMock you must make OCHamcrest available in your project, using whatever |
| dependency management system you use for your project. |
| * Added description of mock object to the exception that is thrown when the |
| mock is used after stopMocking was called (Chaoshuai Lu) |
| |
| |
| OCMock 3.5 (2019-11-17) |
| |
| * Added macro to tell the mock to ignore non-object arguments (Yura Samsoniuk) |
| * Added checks, which throw an expection if no interaction happens with a |
| mock object inside the stub/expect/reject/verify macros. This helps in cases |
| where by accident the real object is used in these macros. (Anton Vlasov) |
| * Changed stopMocking so that arguments will be forcibly released to break |
| retain cycles. This MAY cause some existing tests to fail. However, it |
| was always bad practice to use a mock after calling stopMocking. (Ian) |
| * Added checks, which throw an exception when stopMocking has been called |
| and afterwards an attempt is made to use functionality that will definitely |
| not work after stopMocking has been called. |
| * Changed stub so that return value is not retained if the value is the mock |
| itself, because that creates a retain cycle. (Anton Vlasov) |
| * Added support for watchOS (Morgan Chen) |
| |
| |
| OCMock 3.4.3 (2018-11-04) |
| |
| * Changed behaviour when a second mock takes over class method mocking from |
| an older mock for the same class. Now, stopMocking is no longer called on |
| the first mock, which means that the class generated by it stays around |
| until stopMocking is called, directly or from dealloc; see issue #357 for |
| details. |
| * Changed sequence in which steps are taken to swap out class methods, in |
| order to improve thread-safety; see issue #328 for details. (Lily Ballard) |
| |
| |
| OCMock 3.4.2 (2018-06-25) |
| |
| * Skipping attempt to replace class methods on subclasses of NSManagedObject, |
| which fixes a conflict in newer iOS runtimes. |
| * Skipping initialisation of mock when init is called again. This allows to |
| stub alloc/init; with some limitations. (Alan Terranova) |
| * Removing dynamically created subclasses when a second mock replaces a mock |
| for the same class. (David Sansome) |
| * Retaining class arguments to invocations. (Jack Wu) |
| |
| |
| OCMock 3.4.1 (2017-11-04) |
| |
| * Added workaround for crashes when mocking NSManagedObjects. As a side effect |
| it is no longer possible to verify the invocation of class methods on |
| NSManagedObject; see issue #338 for details. |
| * Fixed a memory leak with andThrow:. (Nick Gillett) |
| * Fixed bug that prevented protocol mocks from being used with |
| invokeWithBlock:. (Christopher McGrath) |
| * Changed type comparison for structs to match new runtime. (Sylvain Defresne) |
| * Added polyfill for compilation with 10.9 and lower SDKs. (Sylvain Defresne) |
| |
| |
| 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 |
| opaque. |
| * 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) |
| |
| 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 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 |
| 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. |
| |