Kharon
Kharon (/ˈkɛərɒn, -ən/; Greek Χάρων) 是哈迪斯(Hades)的船夫,将新死者的灵魂从死者世界的斯提克斯河和希尔克洪河运送到生者世界。
Kharon 是一个小型框架,它改进了 UI 测试与应用程序进程之间的数据交换。
忘记序列化和解码数据,因为 Kharon 为您处理这一切。
用法
Kharon 由两个小型框架组成,即 Kharon 本身和 KharonUITests。
第一个应与应用程序目标链接,第二个与 UI 测试目标链接。
要求
Kharon 依赖于 Swift 属性包装器,因此最低要求的 Swift 工具链版本是:5.1
。
Xcode >= 11.x
应用程序目标
将 Kharon 添加到主应用程序目标,并用 UITestFerry
属性包装器装饰从 UI 测试接收的数据。
UITestFerry
需要一个值为Optional
并符合Codable
协议的值。
import Kharon
import UIKit
final class SomeViewController: UIViewController {
@UITestFerry("someViewController.title")
var uiTestsTitle: String?
}
UI 测试目标
将 KharonUITests 添加到 UI 测试目标中,并使用 AppFerry
属性包装器装饰您希望发送到应用中的数据。
填写数据后,在启动之前将 Kharon 注入到您的 XCApplication
实例中。
import KharonUITests
import XCTest
final class SomeTestCase: XCTestCase {
@AppFerry("someViewController.title")
var uiTestsTitle: String?
func test_inject_title() throws {
uiTestsTitle = "UI Tests"
try Kharon.inject(into: /* XCUIApplication */)
}
}
AppFerry
需要一个Optional
类型的值,并符合Codable
协议。
安装
SwiftPM
将此 GitHub 仓库添加到 Xcode 11.x 中
文件 -> Swift 包 -> 添加 Swift 依赖
并输入
https://github.com/Zi0P4tch0/Kharon
将 Kharon 链接到您的应用目标,并将 KharonUITests 链接到 UI 测试目标。
Carthage
github "Zi0P4tch0/Kharon" "0.1.0"
将 Kharon 链接到您的应用目标,并将 KharonUITests 链接到 UI 测试目标。
Cocoapods
target App do
pod "Kharon", "~>0.1.0"
end
target AppUITests do
pod "KharonUITests", "~>0.1.0"
end
示例
克隆此仓库,并查看 DemoApp 和 DemoAppUITests 来查看 Kharon 的实际应用。
授权
版权所有 (c) 2019 Matteo Pacini
以下是对任何获得此软件及其相关文档副本(“软件”)的个人,免费授权其在不受限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许获得该软件的个人进行此类操作,但需遵守以下条件:
在所有副本或软件的重要部分中应包含上述版权声明和本许可声明。
软件按“原样”提供,不提供任何形式的质量保证,明示或暗示,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论其是基于合同、侵权或其他形式,即使事先已被告知与软件或其使用、销售或处理有关的可能性。