MirrorDiffKit alternatives and similar libraries
Based on the "Other Testing" category.
Alternatively, view MirrorDiffKit alternatives based on common mentions on social networks and blogs.
-
PonyDebugger
Remote network and data debugging for your native iOS app using Chrome Developer Tools -
iOS Snapshot Test Case
Snapshot view unit tests for iOS -
ios-snapshot-test-case
Snapshot view unit tests for iOS -
Mockingjay
An elegant library for stubbing HTTP requests with ease in Swift -
OCMockito
Mockito for Objective-C: creation, verification and stubbing of mock objects -
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 -
NaughtyKeyboard
The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data. This is a keyboard to help you test your app from your iOS device. -
trainer
Convert xcodebuild plist and xcresult files to JUnit reports -
Cribble
Swifty tool for visual testing iPhone and iPad apps. Every pixel counts. -
Mockingbird
Simplify software testing, by easily mocking any system using HTTP/HTTPS, allowing a team to test and develop against a service that is not complete or is unstable or just to reproduce planned/edge cases. -
Mockit
A simple mocking framework for Swift, inspired by the famous http://mockito.org/ -
second_curtain
Upload failing iOS snapshot tests cases to S3 -
AcceptanceMark
Tool for generating Acceptance Tests in Xcode, inspired by Fitnesse -
MetovaTestKit
A collection of useful test helpers designed to ease the burden of writing tests for iOS applications. -
SnappyTestCase
iOS Simulator type agnostic snapshot testing, built on top of the FBSnapshotTestCase. -
XCTestExtensions
XCTestExtensions is a Swift extension that provides convenient assertions for writing Unit Test. -
TestKit
The easiest way to implement full BDD in your Swift iOS projects! Use plain English specs (Gherkin) to drive tests that include both UI automation and interacting with application data & state. -
Bugfender Live
Stream the screen of an iOS device for live debugging. -
Parallel iOS Tests
Run iOS tests on multiple simulators in parallel at the same time
Appwrite - The Open Source Firebase alternative introduces iOS support
* 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 MirrorDiffKit or a related project?
README
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 | |
Linux |
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.