Thanks to visit codestin.com
Credit goes to github.com

Skip to content

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

License

Notifications You must be signed in to change notification settings

merindorium/Guava

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

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")
    ],
    ...
)

About

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

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages