Popularity
3.0
Stable
Activity
0.0
Stable
173
2
5

Code Quality Rank: L2
Programming language: Swift
License: GNU General Public License v3.0 or later
Tags: Testing     Other Testing    
Latest version: v5.0.1

MirrorDiffKit alternatives and similar libraries

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

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

Add another 'Other Testing' Library

README

MirrorDiffKit

Swift 5.0 compatible CocoaPods Carthage Swift Package Manager MIT license

A tool for providing the 2 features for efficient testing:

  • Output diff between 2 any types
  • Default implementation of Equatable for any types

[](./Documentation/Images/XcodePreview.png)

Platform Status
macOS Bitrise
Linux CircleCI

Usage

diff<T>(between: T, and: T)

import MirrorDiffKit

// Input 2 structs or classes implements Equatable:
let a = Example(
    key1: "I'm not changed",
    key2: "I'm deleted"
)
let b = Example(
    key1: "I'm not changed",
    key2: "I'm inserted"
)


XCTAssertEqual(a, b, diff(between: a, and: b))

// XCTAssertEqual failed: ("Example(key1: "I\'m not changed", key2: "I\'m deleted")") is not equal to ("Example(key1: "I\'m not changed", key2: "I\'m inserted")") - 
//     struct Example {
//         key1: "I'm not changed"
//       - key2: "I'm deleted"
//       + key2: "I'm inserted"
//     }

Any =~ Any and Any !~ Any

import MirrorDiffKit

a = NotEquatable(
    key1: "I'm not changed",
    key2: "I'm deleted"
)
b = NotEquatable(
    key1: "I'm not changed",
    key2: "I'm inserted"
)


XCTAssert(a =~ b, diff(between: a, and: b))

// XCTAssertTrue failed - 
//     struct NotEquatable {
//         key1: "I'm not changed"
//       - key2: "I'm deleted"
//       + key2: "I'm inserted"
//     }

Installation

Swift Package Manager

Add the following line to your Package.swift:

.package(url: "https://github.com/Kuniwak/MirrorDiffKit.git")

Carthage

Add the following line to your Cartfile:

github "Kuniwak/MirrorDiffKit"

CocoaPods

pod "MirrorDiffKit"


*Note that all licence references and agreements mentioned in the MirrorDiffKit README section above are relevant to that project's source code only.