CocoaPods trunk is moving to be read-only. Read more on the blog, there are 19 months to go.

Moxie 0.2.2

Moxie 0.2.2

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release May 2019
SPMSupports SPM

Maintained by Jason Duffy.



Moxie 0.2.2

Moxie

Build Status License Pod

A spunky mocking library for Swift

Moxie

Using Moxie

Let's say you have a protocol you want to mock.

protocol List {
    mutating func add(_ item: String)
    mutating func clear()

    func get(_ index: Int) -> String?
}

You can use Moxie to create a mock.

import Moxie

struct MockList: Mock, List {
    var moxie = Moxie()

    mutating func add(_ item: String) {
        record(function: "add", wasCalledWith: [item])
    }

    mutating func clear() {
        record(function: "clear")
    }

    func get(_ index: Int) -> String? {
        return value(forFunction: "get")
    }
}

Then you can use it in your tests.

func testList() {

    var mockList = MockList()

    // verifying invocations
    mockList.add("one")
    mockList.clear()

    XCTAssertTrue(mockList.invoked(function: "add"))
    XCTAssertEqual("one", mockList.parameters(forFunction: "add")[0] as? String)
    XCTAssertTrue(mockList.invoked(function: "clear"))

    // stubbing
    mockList.stub(function: "get", return: "first")

    XCTAssertEqual("first", mockList.get(0))
}

Documentation

  1. Installation
  2. Creating Mocks
  3. Stubbing
  4. Verifying Invocations