Popularity
0.4
Stable
Activity
2.9
Growing
9
3
0

Description

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.

Programming language: Swift
License: MIT License
Tags: Testing     Mock     iOS     Linux    
Latest version: v1.2.0

Guava alternatives and similar libraries

Based on the "Testing" category.
Alternatively, view Guava alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Guava or a related project?

Add another 'Testing' Library

README

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](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