All Versions
25
Latest Version
Avg Release Cycle
17 days
Latest Release
1295 days ago
Changelog History
Page 2
Changelog History
Page 2
-
v0.11.0 Changes
April 08, 2020π Note: Because the generator in the 0.11.1 patch is compatible with 0.11.0, weβve backported all artifacts from 0.11.1 into this release.
Targets
- Xcode 11.3 / Swift 5.1
- π iOS 8.0+, macOS 10.14+, tvOS 9.0+
π₯ Breaking
- β
Enforce correct usage of class and protocol mocks by showing compile time errors when coercing mocks or using uninitialized class mocks. Use
dummy(SomeType.self)
instead ofmock(SomeType.self)
when passing initialized test objects as arguments that donβt require mocking or stubbing
Andrew Chang - π Change CLI install command parameter names from
mockingbird install --target Bird --destination BirdTests
tomockingbird install --target BirdTests --source Bird
Andrew Chang - π Improve Carthage installation process to work when directly running
$ carthage update
Andrew Chang
Experimental
- None
β¨ Enhancements
- β Add in order verification for enforcing relative invocation ordering
Andrew Chang - π Support implicitly imported modules in mixed-source (Objective-C and Swift) targets
Andrew Chang - π€‘ Handle negation and non-relative patterns in
.mockingbird-ignore
files
Andrew Chang - β Add CocoaPods and Carthage example projects and integration tests
Andrew Chang - π Improve integration of nominal count matchers, allowing for syntax like
verify(foo.bar()).wasCalled(once)
andverify(foo.bar()).wasCalled(atLeast(once))
Andrew Chang - β Add fuzzy floating point argument matcher to standard testing library, usage:
around(10.0, tolerance: 0.01)
Andrew Chang - π Improve clarity and verboseness of test failure messages, showing invocation history
Andrew Chang - β Add CustomStringConvertible to standard supporting source files
Andrew Chang - π Improve clarity of setup and installation process in README, including a new Troubleshooting section
Andrew Chang - π Include prebuilt iOS, macOS, and tvOS frameworks in release artifacts
Andrew Chang
π Bug Fixes
- π Support implicit
TARGET_NAME
build setting for module name resolution
Andrew Chang - Specialize members inherited from generic classes
Andrew Chang - π Fix type coercion regression in type facade resolution method which was erasing type annotations
Andrew Chang - π Fix parsing optional function return types
Andrew Chang - π Handle class-constrained protocols with designated initializers
Andrew Chang - π Handle generic type shadowing top-level types and other generic types
Andrew Chang
-
v0.10.0 Changes
February 28, 2020π₯ Breaking
- None
Experimental
- None
β¨ Enhancements
- π Improve handling of members imported from external modules
Andrew Chang - π Improve handling of types and constraints inherited from grandparents
Andrew Chang - π Use path prefix for CLI binary installation
Pavel Ivashkov - β Add MockingbirdCli as a dependency to MockingbirdTests
Pavel Ivashkov - π Parse and handle parenthesized expressions separately from tuples
Andrew Chang - π€‘ Log warning when trying to mock a non-initializable class
Andrew Chang - π Improve target module name resolving
Andrew Chang
π Bug Fixes
- π Fix interleaving of log output by manually flushing
Andrew Chang - Rewrite type facade to use execution context approach for improved stability
Andrew Chang - β Add support for reserved keyword parameter names by escaping
Ryan Meisters - Match dot files with a wildcard in ignore rules
Pavel Ivashkov - Ignore objc attributes for all generated hooks
Andrew Chang
-
v0.9.0 Changes
December 03, 2019π₯ Breaking
- β Remove automatic binary installation from
pod install
prepare_command
. Not all environments (e.g. CI) allow modifying/usr/local/bin
. Run$ make install-prebuilt
as needed to set up your environment.
Andrew Chang
Experimental
- None
β¨ Enhancements
- None
π Bug Fixes
- π€‘ Invalidate cached mocked modules when the CLI version changes
Andrew Chang - Gather module names for inherited types
Alvar Hansen - Include declarations in extensions when flattening inherited types
Andrew Chang - π Fix matching closures with wildcard argument matchers
Andrew Chang
- β Remove automatic binary installation from
-
v0.8.0 Changes
November 01, 2019π₯ Breaking
- None
Experimental
- β Add per-module caching of generated mocks to reduce the overhead in reading large Xcode project files
Andrew Chang
β¨ Enhancements
- π Improve CLI error messaging (#11)
Sterling Hackley - π Improve support for mocking classes conforming to built-in Swift protocols with implicitly required initializers such as
Decodable
Andrew Chang - π Improve handling of imports and compilation directives within comment blocks and string literals
Andrew Chang - β Add
loglevel
option to the CLI installer to specify a logging level to use when generating mocks
Andrew Chang
π Bug Fixes
- π Fix fnmatch implementation on macOS Catalina (#15)
Andrew Chang - β Remove generic type alphabetization (#14)
Andrew Chang - π€‘ Handle non-alphanumeric target names (#10)
Sterling Hackley - π Fix class-only protocol initializer generation (#9)
Andrew Chang - π Fix handling of failable initializers with generic type constraints
Andrew Chang
-
v0.7.2
October 24, 2019 -
v0.7.1
October 22, 2019 -
v0.7.0 Changes
September 23, 2019π₯ Breaking
- None
Experimental
- None
β¨ Enhancements
- π Add ability to provide supporting source files for mocking references to types defined in external modules
Andrew Chang - π Support types, methods, and variables wrapped in conditional compilation blocks
Andrew Chang - Infer
.xcodeproj
file from current working directory when running installer
Andrew Chang - π Support nested
Self
protocol conformance in generic where clause
Andrew Chang - π Support associated types conforming to multiple types
Andrew Chang - π Support Xcode 11 and Swift 5.1
Andrew Chang - β Remove per-file inlined
Synchronized
class
Andrew Chang
π Bug Fixes
- π Fix flaky mock generation due to Xcode running build phases in parallel
Andrew Chang - π Fix CLI installer not properly uninstalling existing build phases
Andrew Chang - π Fix broken tests due to a regression in Swift 5.1 with handling self-referencing generics
Andrew Chang - π Fix false positives from variable type inference system
Andrew Chang - π Fix type qualification for types nested in extensions
Andrew Chang
-
v0.6.1 Changes
September 18, 2019Patch Notes
- π Fix CocoaPods regression caused by renaming the Podspec from
Mockingbird
toMockingbirdFramework
Andrew Chang - π Fix handling of opaque types with designated initializers
Andrew Chang - π Fix automatic conformance of
Codable
/Encodable
/Decodable
opaque types
Andrew Chang
- π Fix CocoaPods regression caused by renaming the Podspec from
-
v0.6.0 Changes
September 17, 2019Notes
π This is a quiet release of Mockingbird to gather initial developer feedback before the full rollout next week.
π₯ Breaking
- π Rename
--src-targets
to--targets
in the CLI installer for simplicity
Andrew Chang
Experimental
- π€‘ Flag mocked types that inherit unparsed types, such as from the Swift standard library and auto-generate conformance for common
Self
constrained protocols in the Swift standard library
Andrew Chang
β¨ Enhancements
- β Add
--verbose
and--quiet
logging options to CLI
Andrew Chang - β Add CI support to the repo using GitHub Actions which builds, installs, and tests the framework and CLI
Andrew Chang - Return an exit status code of 1 when a fatal CLI error occurs
Andrew Chang - π¨ Refactor mock generation pipeline rendering step for improved semantics and clarity
Andrew Chang - π Improve
TypeFacade
synchronization implementation
Andrew Chang
π Bug Fixes
- π Fix incorrect counting of invocations for overloaded methods
Andrew Chang - π Fix incorrect type qualification level for types which could be shadowed by types defined in external modules
Andrew Chang - π Fix mocking types that inherit types with non-public initializers defined in external modules
Andrew Chang - π Fix inherited associated type protocols and
Self
constrained protocols that require type qualification
Andrew Chang - π Fix conformance-based generic where clauses and type qualification of generic where clauses
Andrew Chang - π Fix support for
rethrowing
methods
Andrew Chang - π Fix mocking empty types with conformance or inheritance
Andrew Chang - π Fix incorrect de-duplication of inherited members in class mocks
Andrew Chang
- π Rename
-
v0.5.0 Changes
September 14, 2019π₯ Breaking
- None
Experimental
- None
β¨ Enhancements
- β Add support for using a
.mockingbird-ignore
file to exclude sources or source directories from being mocked
Andrew Chang - β
Make
mockingbird install
fully set up a unit test target by accepting explicit source and destination targets,--src-targets
and--destination
respectively
Andrew Chang - π Support
os.log
signposts for improved instrumentation when using Instruments.app
Andrew Chang - π Improve CLI error handling for malformed or missing arguments
Andrew Chang - π Allow binary pinning by not removing prebuilt binary when running
make install-prebuilt
Andrew Chang - π Improve performance when writing generated mock files with many mocked types
Andrew Chang - π Improve performance of running type specialization on types that donβt require specialization
Andrew Chang - β Add GitHub report issue template
Andrew Chang - β Add instructions on how to link Mockingbird to a unit test target when building from source
Andrew Chang
π Bug Fixes
- π Fix parsing non-open declarations in external modules
Andrew Chang