🏭 FactoryFactory🏭
生成 Swift 工厂框架的样板代码。
要求
FactoryFactory 适用于以下平台
- iOS 8+
- Mac OSX 10.9+
- watchOS 2+
- tvOS 9+
FactoryFactory
1. 安装
CocoaPods
FactoryFactory 运行时通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中的测试目标
pod "FactoryFactory"
并将以下 Run script
构建阶段添加到测试目标的 Build Phases
"${PODS_ROOT}/FactoryFactory/run" \
--include "${PROJECT_DIR}/${PROJECT_NAME}/Input1/**/*.swift" \
--include "${PROJECT_DIR}/${PROJECT_NAME}/Input2/**/*.swift" \
--exclude "${PROJECT_DIR}/${PROJECT_NAME}/Input2/InputFile.swift" \
--testable "$PROJECT_NAME" \
--output "$PROJECT_DIR/${PROJECT_NAME}Tests/Factories.generated.swift"
运行一次后,定位 Factories.generated.swift
并将其拖放到 Xcode 测试目标组中。
--include
要生成的文件的路径
跳过生成文件的路径
不生成文件的路径
可测试的目标
可测试的目标
生成文件的路径
生成的文件路径
2. 用法
您可以通过调用<TypeName>.provide()
获取一个实例。每个属性都设置为默认值。
struct Climber {
let name: String
let age: Int
}
let climber = Climber.provide()
3. 镜
<TypeName>.provide()
提供固定实例。您可以通过镜修改每个属性。
获取
let name = Climber._name.get(Climber.provide())
// ""
设置
let climber = Climber._name.set(Climber.provide(), "Climber")
// Climber(name: "Climber", age: 0)
修改
let climber1 = Climber._name.set(Climber.provide(), "Climber")
// Climber(name: "Climber", age: 0)
let climber = Climber._name.modify(climber1, f: { $0 + $0 })
// Climber(name: "ClimberClimber", age: 0)
编写
struct Climber {
let id: Id
let name: String
struct Id {
let value: String
}
}
let climber1 = Climber.provide()
// Climber(id: Id(value: ""), name: "")
let climber2 = Climber._id.compose(other: Climber.Id._value).set(climber1, "id")
// Climber(id: Id(value: "id"), name: "")
库
许可
FactoryFactory 在 MIT 许可证 下提供。