Swiftpack.co - Package - danielsaidi/MockingKit

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.


MockingKit is a Swift mocking library that makes it easy to mock protocol implementations for unit tests and not yet implemented functionality. It lets you register function results, invoke method calls and inspect invokations.


MockingKit Logo
Version Swift 5.3 MIT License Twitter: @danielsaidi

About MockingKit

MockingKit is a Swift-based mocking library that makes it easy to mock protocols and classes. It lets you register function results, call functions and inspect calls:

protocol MyProtocol {
    func doStuff(int: Int, string: String) -> String

class MyMock: Mock, MyProtocol {

    lazy var doStuffRef = MockReference(doStuff)  // References must be lazy

    func doStuff(int: Int, string: String) -> String {
        call(doStuffRef, args: (int, string))

let mock = MyMock()
mock.registerResult(for: mock.doStuffRef) { args in String(args.1.reversed()) }
let result = mock.doStuff(int: 42, string: "string")    // => "gnirts"
let calls = mock.calls(to: mock.doStuffRef)             // => 1 item
calls[0].arguments.0                                    // => 42
calls[0].arguments.1                                    // => "string"
calls[0].result                                         // => "gnirts"
mock.hasCalled(mock.doStuffRef)                         // => true
mock.hasCalled(mock.doStuffRef, numberOfTimes: 1)       // => true
mock.hasCalled(mock.doStuffRef, numberOfTimes: 2)       // => false

MockingKit supports:

  • mocking protocols
  • mocking classes
  • mocking non-returning and returning functions
  • mocking synchronous and asynchronous functions
  • void, optional and non-optional result values
  • argument-based results

MockingKit doesn't put any restrains on your code or require you to structure it in any way. You don't need any setup or configuration. Just create a mock and you're good to go.

For more information, have a look at this detailed example.


Swift Package Manager



pod 'MockingKit'

Demo App

This repository contains a demo app that shows you how to use MockingKit.

To run it, just open and run Demo/Demo.xcodeproj.

Contact me

Feel free to reach out if you have questions or if you want to contribute in any way:


MockingKit is based on Stubber, and would not have been possible without it.


MockingKit is available under the MIT license. See the LICENSE file for more info.


Stars: 14
Last commit: 4 hours ago



- 2021-02-19T10:49:10

Thanks to @jinuman this version fixes the incorrectly high deployment targets.

This version also annotates another invoke function as deprecated.