- Generate random value for any type
- Customize rules for random
- Xcode 10.x
- Swift 4.x
- iOS 9.0+
github "tattn/Randomizable"
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)
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Randomizable is released under the MIT license. See LICENSE for details.