Skip to content

Latest commit

 

History

History
464 lines (298 loc) · 11.9 KB

CHANGELOG.md

File metadata and controls

464 lines (298 loc) · 11.9 KB

Version 7.0.2

01 Oct 2022

Fixes:

  • Restores Carthage build. #169 Thanks to: Christian Tietze

Other:

  • Restores "year of first publication" in copyright notices

Version 7.0.1

13 Mar 2022

Fixes:

  • Keep stubs working while verifying. #165 Thanks to: Damian Ferrai

Version 7.0.0

24 Nov 2021

OCMockito now requires OCHamcrest v9.0.0 or higher.

Features:

  • Add support for Swift Package Manager. Thanks to: nrudnyk
  • Add Mac Catalyst to XCFramework-supported architectures in build script makeXCFramework.sh

Fixes:

  • Prevent false positives from verifying while stubbing. Thanks to: Damian Ferrai

Version 6.0.0

19 Feb 2021

Features:

  • Packaged pre-built binary as single XCFramework containing 7 architectures:

    • macOS
    • iOS device
    • iOS simulator
    • tvOS device
    • tvOS simulator
    • watchOS device
    • watchOS simulator

    Note:

    • iOS projects that use the pre-built binary should now import OCMockito instead of OCMockitoIOS.
    • macOS projects should remove OCMockito from the Copy Files build phase.
    • For Carthage builds, specify --use-xcframeworks

    Thanks to: Mateusz Szklarek

  • Mac binary now supports Apple Silicon.

  • Use latest OCHamcrest to report mismatches using XCTIssue if using Xcode 12 or higher.

  • Simplified project settings. In particular:

    • Removed iOS Static Library target.
    • Removed iOS-specific test target.
    • Simplified Product Bundle Identifiers.

Version 5.1.3

01 Jan 2020

Fixes:

  • Don't require clang module import.

Version 5.1.2

24 Sep 2019

Improvements:

  • For building, update OCHamcrest to v7.1.2 to quiet warnings.

Version 5.1.1

11 Sep 2018

Improvements:

  • Remove .gitkeep from Carthage folder.

Version 5.1.0

29 Mar 2018

Features:

  • Made OCMockito/OCMockitoIOS into modules, so you can @import them. CocoaPods users should specify use_frameworks!

Version 5.0.1

22 Sep 2017

Fixes:

  • Fixed new warnings from Xcode 9.

Version 5.0.0

12 Aug 2017

OCMockito now requires OCHamcrest v7.0.0 or higher.

Features:

  • Added isKindOfClass: to class-and-protocol mocks. Thanks to: Kylan McBride
  • Support protocol class methods. Thanks to: Kylan McBride

Fixes:

  • Avoid potential problem iterating over mutable array. Thanks to: David Siebecker
  • Fixed nullability annotation mistakes.

Version 4.1.0

19 Feb 2017

Improvements:

  • Adopt latest Objective-C annotations for designated initializers, unavailable initializers, typed arrays, nullability.

Version 4.0.1

11 Sep 2016

Improvements:

  • Improved reliability of stubSingleton. Thanks to: Igor Sales

Version 4.0.0

08 Sep 2016

OCMockito now requires OCHamcrest v6.0.0 or higher. (Actually, it only needs v5.4.0 but v6.0.0 is better for CocoaPods/Carthage users.)

Features:

  • Added stubSingleton(…). "A patch for the rest of us, who know it's easier to live with the reality that singletons are here to stay." Thanks to: Igor Sales

Fixes:

  • Prevent argument captor from capturing values twice.
  • Prevent over-releasing mock object that is stubbed as return value for copy method.
  • Fixed crash comparing literals to mocked protocols.
  • Fixed crash describing collection containing mocked protocol.

Project changes:

  • Increased deployment targets to OS X 10.9, iOS 8.0.

Version 3.0.2

25 Jun 2016

Fixes:

  • Fixed race condition when stubbed method is called from multiple threads. Thanks to: brianvanderwal
  • Add transitive imports to OCMockito.h to satisfy new umbrella header requirements.
  • Significantly speed up mock creation time. Thanks to: rcgroot

Features:

  • Added Carthage support for Mac, iOS, watchOS and tvOS. Thanks to: Nikolaj Schumacher

Version 3.0.1

27 Dec 2015

Improvements:

  • Improved filtering of call stack to skip past XCTest frames.
  • Don't consider previously verified invocations when finding similar invocations.
  • When printing invocations, mark previously verified invocations with check marks.

Version 3.0.0

21 Dec 2015

Compatibility-breaking Changes:

  • The semantics for repeated verification have changed. Call counts used to always accumulate:
…something that invokes someMethod…
[verifyCount(myMock, times(1)) someMethod];
…another thing that invokes someMethod…
[verifyCount(myMock, times(2)) someMethod];

But now, verification counts only the matches since the last verification.

  • OCMockito now requires OCHamcrest v5.1.0 or higher, which also potentially breaks compatibility.

Features:

  • Instead of enabling short syntax by defining MOCKITO_SHORTHAND, short syntax is now enabled by default. To disable it, #define MKT_DISABLE_SHORT_SYNTAX.
  • Previously verified invocations are no longer considered for verification.
  • Report additional information about verification failures:
    • If the number of matches is incorrect, report a filtered call stack of the first bad invocation or the last good invocation.
    • If there were no matches, but there was a call to the expected method, report it. Describe the mismatched arguments along with a filtered call stack.
    • If there were no matches, but there were other calls to the mock, report them with call stacks.
    • If there were no matches, and in fact that mock received no calls, say so.

Fixes:

  • Fixed atMost(0)

Deleted:

  • MKTCapturingMatcher (deprecated in 2.0.1)

Version 2.0.3

06 Nov 2015

Project changes:

  • Enabling "Symbols hidden by default" in 2.0.2 was overkill, preventing people from using the prebuilt Mac framework.

Version 2.0.2

24 Oct 2015

Project changes:

  • Remove debug symbols from Release configuration, which bloated the libraries and kept folks from using the prebuilt iOS framework.

Version 2.0.1

14 Oct 2015

Compatibility-breaking Change:

  • Eliminated reset(mock) since reset was likely to clash with mocked methods. Call stopMocking(mock) instead.

Fixes:

  • Fixed crash when multiple mock objects are at play on multiple threads.

Features:

  • Stub void methods with givenVoid(…). Thanks to: Lysann Schlegel
  • Added atMost(count) for verifyCount(). Thanks to: Emile Cantin

Improvements:

  • Use stopMocking(…) if a -dealloc of your System Under Test is trying to message an object that is mocked. It disables message handling on the mock and frees its retained arguments. This prevents retain cycles and crashes during test clean-up. See StopMockingTests.m for an example.
  • NSInvocation+OCMockito.h is now imported by OCMockito.h, so it no longer needs a separate import.

Deprecated:

  • Deprecated MKTCapturingMatcher; use HCArgumentCaptor from OCHamcrest for capturing arguments. There is no need to call -capture to get a matcher to use as the argument, since HCArgumentCaptor is a matcher.

Project changes:

  • Updated project settings to Xcode 7, with tests now run by XCTest.

Version 1.4.0

04 Jan 2015

Features:

  • Stub sequential returns by chaining willReturn:.
  • Stub throwing exceptions with willThrow:.
  • Stub execution of a block with willDo:.
  • Added support for dynamic properties. Thanks to Eugen Martynov for example code
  • Added mockProtocolWithoutOptionals(…) which mocks an object implementing a given protocol, but without mocking any optional methods. Thanks to: Paweł Dudek

Improvements:

  • Updated project to make it run-path dependent.

Version 1.3.1

27 Sep 2014

TPWeakProxy changes:

  • Updated to from TPWeakProxy to TPDWeakProxy.
  • Directly include a renamed copy to simplify non-CocoaPod builds. Don't call the script Frameworks/getweakproxy anymore.

Version 1.3.0

04 Jun 2014

This version requires OCHamcrest 4.0.1. TPWeakProxy 1.0.0 is also needed to build OCMockito.

  • To build OCMockito without CocoaPods, execute two scripts:
    • Frameworks/gethamcrest
    • Frameworks/getweakproxy

Fixes:

  • Fix mockClass crash on 64-bit runtime (OS X and iOS).
  • Fixed retain cycle between mocks and tests. The fix addresses most but not all cases. If the -dealloc of your System Under Test is not called when you nil out your SUT, call -reset on your mock object (probably from tearDown). Thanks to ronak2121 for testing

Features:

  • Stub methods that return structs with willReturnStruct:objCType:. Thanks to GWStuartClift and Yaron Inger
  • stubProperty(instance, property, value) stubs a property, and its related getValueForKey: and valueForKeyPath: KVO methods. Thanks to: Sasha Zats

Project changes:

  • Increased deployment targets to OS X 10.8, iOS 6.0.

Version 1.2.0

05 Apr 2014

If you're not using CocoaPods, please specify -ObjC in your "Other Linker Flags".

Fixes:

  • Fix crash capturing nil selectors as method parameters. Thanks to: Sergio Padrino
  • Fix crash capturing inline blocks as method parameters. Thanks to: Sergio Padrino
  • Fix crash returning BOOL on 64-bit iOS. Thanks to: Ullrich Schäfer

Features:

  • Added support for pointer arguments, including NSError **.
  • Added support for struct arguments. Thanks to: César Estébanez Tascón

Improvements:

  • To build OCMockito without CocoaPods, execute the script Frameworks/gethamcrest first to get the latest OCHamcrest release.

Version 1.1.0

30 Oct 2013

Features:

  • Added MKTArgumentCaptor to capture arguments:
    • Use capture to capture the argument. This must be used inside of verification.
    • Use value to return the captured value.
    • Use allValues to return an array of all captured values.

Improvements:

  • Changed mock object factory methods to cast to (id) to eliminate AppCode warnings.
  • Added support for 64-bit iOS devices.
  • Convert primitive arguments to objects using NSInvocation+OCMockito by Taras Kalapun.

Examples & Documentation:

  • Updated examples so they are based on Apple's templates for main target vs. test target. Added CocoaPods examples.
  • Eliminated DocSet. Documentation will be in the main README and in the OCMockito wiki, https://github.com/jonreid/OCMockito/wiki/_pages

Version 1.0.0

06 Sep 2013

This release adopts Semantic Versioning (http://semver.org). Thanks to: Jens Nerup

New dependencies:

  • Requires OCHamcrest 3.0.0.

Features:

  • Added support for XCTest. Special thanks to Richard Clem for testing
  • Added ability to match block arguments. Supported matchers:
    • anything()
    • nilValue()
    • notNilValue()
    • sameInstance()
  • Added -description to mock objects to help when debugging.

Version 0.23

23 Nov 2012

  • Added atLeast(count) and atLeastOnce() for verifyCount(). Thanks to: Markus Gasser
  • Handle Class as both argument type and return type. Thanks to: David Hart
  • Added support for -isKindOfClass: to object mocks. Thanks to: Tim Pesce
  • No more need to specify "Other Linker Flags"! Depending on your project, you may be able to eliminate:
    • -lstdc++
    • -ObjC
  • Converted source, tests, and examples to ARC

Version 0.22

18 Mar 2012

  • Added mockClass(…) which mocks a class object. Thanks to: David Hart
  • Added mockObjectAndProtocol(Class, Protocol) which mocks an object of a given class that also implements a given protocol. Thanks to: Kevin Lundberg

Version 0.21

09 Mar 2012

  • Added mockProtocol(…) which mocks an object implementing a given protocol.
  • given(…) now supports methods returning float or double. Thanks to: Markus Gasser
  • verify(…) and verifyCount(…) check that argument is a mock object.
  • Eliminated givenPreviousCall.
  • Changed build configuration to Debug during initial development.

Version 0.1

24 Nov 2011 prerelease