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.
Guava alternatives and similar libraries
Based on the "Testing" category.
Alternatively, view Guava alternatives based on common mentions on social networks and blogs.
-
OHHTTPStubs
Stub your network requests easily! Test your apps with fake network data and custom response time, response code and headers! -
Buildasaur
Automatic testing of your Pull Requests on GitHub and BitBucket using Xcode Server. Keep your team productive and safe. Get up and running in minutes. @buildasaur -
Erik
Erik is an headless browser based on WebKit. An headless browser allow to run functional tests, to access and manipulate webpages using javascript. -
AutoMockable
AutoMocker is a Swift framework that leverages the type system to let you easily create mocked instances of your data types. -
XCUITestHelper
XCUITestHelper helps you writing UI tests within SwiftUI. It provides a set of useful extensions on XCUIApplication, XCUIElement and XCUIElementQuery to make your tests more readable and easier to maintain.
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Guava or a related project?
Popular Comparisons
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.
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:
make release_tooling
make carthage_build