Mockingbird v0.11.0 Release Notes

Release Date: 2020-04-08 // about 4 years ago
  • πŸš€ 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 of mock(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 to mockingbird 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) and verify(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