github "tattn/Randomizable"
.package(url: "https://github.com/tattn/Randomizable.git", from: “1.0.3")
import Randomizable
// conform Decodable to auto-implement Randomizable
struct User: Decodable, Randomizable {
let id: ID
let name: String
struct ID: Decodable, Randomizable {
let id: Int
}
}
let user = User.randomValue()
// => User(id: ID(id: 1823), name: "raewfbaw")
struct User: Decodable, Randomizable {
let name: String
let profile: Profile
struct Profile: Decodable, Randomizable {
let email: String
let birthday: Date?
static func randomValue() -> Profile {
return Profile(email: "\(String.randomValue())@test.com",
birthday: Date?.randomValue())
}
}
}
let user = User.randomValue()
// => User(name: "gaoaweja", profile: Profile(email: "iwelasm@test.com"
// birthday: 2018-11-02 16:25:17 +0000))
struct A: Decodable, Randomizable {
let animal: Animal
enum Animal: String, Decodable, CaseIterable, Randomizable {
case cat
case dog
case rabbit
}
}
A.randomValue()
// => A(animal: Animal.cat)
struct A: Decodable, Randomizable {
let int: Int?
let string: String?
}
let configuration = RandomizableConfiguration()
configuration.forceNil = true
let a = A.randomValue(with: configuration)
a.int // nil
a.string // nil
git checkout -b my-new-feature
git commit -am 'Add some feature'
git push origin my-new-feature
Randomizable 使用 MIT 许可证发布。 详情请参阅 LICENSE。