AlphaMacroKit
旨在通过提供有用的 Swift 宏来增强 Swift 开发。目前,此库引入了 AutoNew
和 EnumCaseChecker
宏,以解决单元测试领域的特定挑战。
在 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 或分享您的反馈来进行协作。
如果您喜欢这个库,理解维护它所需的所有努力并想支持我,您可以通过点击此链接请我喝杯咖啡
您也可以点击 GitHub Sponsor 按钮来赞助我。所有帮助都非常感谢。
AlphaMacroKit
在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。