Graduation from messy XCTAssertEqual messages.
Alternatives To Mirrordiffkit
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Nightmare19,3512,6407052 months ago88April 27, 2019207JavaScript
A high-level browser automation library.
Webtorrent Desktop9,27016 days ago27September 23, 201681mitJavaScript
❤️ Streaming torrent app for Mac, Windows, and Linux
Jest Image Snapshot3,5964115412 months ago40August 31, 202224apache-2.0JavaScript
✨ Jest matcher for image comparisons. Most commonly used for visual regression testing.
Verify1,9554914 hours ago417June 27, 202210mitC#
Verify is a snapshot tool that simplifies the assertion of complex data models and documents.
Ios Snapshot Test Case1,683
553 months ago9July 01, 201936mitObjective-C
Snapshot view unit tests for iOS
Js Imagediff7688727a year ago6January 29, 201530mitJavaScript
JavaScript / Canvas based image diff utility with Jasmine matchers for testing canvas.
Swift Custom Dump691
25 days ago5mitSwift
A collection of tools for debugging, diffing, and testing your application's data structures.
Awesome Tap587
5 months agocc0-1.0
Useful resources for the Test Anything Protocol
Niffy519534 years ago2April 05, 201726JavaScript
Perceptual diffing suite built on Nightmare
Mutationobserver.js3105,1014973 years ago9June 09, 2020mitJavaScript
ES3 Shim for the MutationObserver interface via DOM diffing.
Alternatives To Mirrordiffkit
Select To Compare

Alternative Project Comparisons


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

Platform Status
macOS Bitrise
Linux CircleCI


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"
//     }


Swift Package Manager

Add the following line to your Package.swift:

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


Add the following line to your Cartfile:

github "Kuniwak/MirrorDiffKit"


pod "MirrorDiffKit"
Popular Testing Projects
Popular Diff Projects
Popular Software Quality Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Package Manager