Guava

1.2.0

A Swift test double library. Guava - looks like an apple but it's not.
merindorium/Guava

What's New

Guava v1.2.0

2020-05-28T08:17:10Z

Guava

Guava helps you to make your unit tests more flexible. It allows you to replace parts of your system under test with a test double objects.


build Swift 5.x platform version Carthage compatible

Table of Contents

Features

Guava provides several types of test doubles:

  • Stub
  • Spy
  • Fake

Usage

import Guava
import XCTest

protocol Calculator {

    func multiply(_ lhs: Int, _ rhs: Int) -> Int
}

final class CalculatorTestDouble: Calculator {

    let multiplyMethod = TestDoubleFactory<Int>()

    func multiply(_ lhs: Int, _ rhs: Int) -> Int {
        return multiplyMethod.invoke(arguments: [lhs, rhs])
    }
}

final class CalculatorTestCase: XCTestCase {

    func testMultiply() {
        let stubValue = 5
        let calculatorTestDouble = CalculatorTestDouble()

        calculatorTestDouble.multiplyMethod.stub(stubValue)

        let result = calculatorTestDouble.multiply(3, 3)
        XCTAssertEqual(result, stubValue)
    }
}

Documentation

See Documentation section.

Installation

Carthage

Update your Cartfile with:

github "merindorium/Guava"

Swift Package Manager

To use Guava with SPM update your Package.swift.

import PackageDescription

let package = Package(
    name: "ExampleProject",
    dependencies: [
        .package(url: "https://github.com/merindorium/Guava.git", from: "v1.2.0")
    ],
    ...
)

Manual

⚠️ This will install Carthage on your system

You could manually build Guava for iOS and MacOS by using:

  1. make release_tooling
  2. make carthage_build

Description

  • Swift Tools 5.0.0

Dependencies

  • None
Last updated: Tue Nov 03 2020 04:07:14 GMT-0500 (GMT-05:00)