🐺 AlphaMacroKit

CI Swift Package Manager compatible License: MIT

AlphaMacroKit 旨在通过提供有用的 Swift 宏来增强 Swift 开发。目前,此库引入了 AutoNewEnumCaseChecker 宏,以解决单元测试领域的特定挑战。

要求

安装

Swift Package Manager

在 Xcode 中

在 Package.swift 中

dependencies: [
    .package(url: "https://github.com/Arideno/AlphaMacroKit", from: "0.1.0")
]

使用方法

AutoNew 宏简化了实例的创建,特别是对于具有多个非可选属性的结构体和枚举。它生成一个新的方法,提供默认值并减少样板代码。这在单元测试中非常有用,因为您通常需要为测试创建一些桩结构体。例如

extension UUID {
    static func new() -> UUID { .init() }
}

extension String {
    static func new() -> String { .init() }
}

@AutoNew
struct User {
    let id: UUID
    let name: String
    // Other properties
}

let newUser = User.new() // User(id: UUID(), name: "")
let newUser2 = User.new(name: "Test name") // User(id: UUID(), name: "Test name")

类似地,EnumCaseChecker 通过为每个 case 添加计算属性来增强枚举,从而实现更具可读性和可维护性的代码。这在单元测试场景中尤其有用,在这些场景中,枚举状态经常被检查。例如

@EnumCaseChecker
enum State {
    case loading
    case success
    case error(String)
}

let state = State.loading
print(state.isLoading) // true

这些宏旨在简化 Swift 开发,使代码更简洁、更具表现力,并显著改善单元测试体验。

文档

AlphaMacroKit 的最新文档可在此处获取。

反馈

如果您遇到任何问题或有任何建议,请随时提出 issue 或通过 andrii.moisol@gmail.com 与我联系。这是一个开源代码项目,因此欢迎通过发起 pull request 或分享您的反馈来进行协作。

支持开源

如果您喜欢这个库,理解维护它所需的所有努力并想支持我,您可以通过点击此链接请我喝杯咖啡

Buy Me A Coffee

您也可以点击 GitHub Sponsor 按钮来赞助我。所有帮助都非常感谢。

许可证

AlphaMacroKit 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。