MirrorDiffKit 5.0.1

MirrorDiffKit 5.0.1

测试已测试
Lang语言 SwiftSwift
许可证 NOASSERTION
发布上次发布2019年3月
SPM支持 SPM

Kuniwak 维护。



  • 作者:
  • Kuniwak

MirrorDiffKit

Swift 5.0 compatible CocoaPods Carthage Swift Package Manager MIT license

为高效测试提供 2 个功能的工具

  • 输出两个任意类型之间的差异
  • 为任意类型提供 Equatable 的默认实现

平台 状态
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 =~ AnyAny !~ 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.swift

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

Carthage

将以下行添加到您的 Cartfile

github "Kuniwak/MirrorDiffKit"

CocoaPods

pod "MirrorDiffKit"