Migration from k-random
Migration from k-random
Use this mapping to move from io.github.k-random:k-random-* artifacts to native kRandom APIs. This is feature-parity guidance, not source-compatible import replacement.
Install
Gradle Kotlin:
dependencies {
implementation("io.github.frikit:krandom-core:2.10.0")
}
Maven:
<dependency>
<groupId>io.github.frikit</groupId>
<artifactId>krandom-core</artifactId>
<version>2.10.0</version>
</dependency>
API mapping
| k-random | kRandom equivalent |
|---|---|
new KRandom().nextObject(User.class) |
Generators.ofObject(User.class).generate() |
random.objects(User.class, 10) |
Generators.ofObject(User.class).generateList(10) |
new KRandomParameters().seed(42L) |
GeneratorConfig.builder().seed(42L) |
stringLengthRange(min, max) |
stringLength(min, max) |
collectionSizeRange(min, max) |
collectionSize(min, max) |
randomizationDepth(depth) |
objectMaxDepth(depth) |
randomize(type, randomizer) |
objectOverride(type, generator) |
randomize(fieldPredicate, randomizer) |
objectOverride(fieldPredicate, generator) |
excludeField(fieldPredicate) |
objectExclude(fieldPredicate) / objectExcludeField(name) |
@io.github.krandom.annotation.Randomizer |
@io.github.frikit.krandom.generator.object.Randomizer |
k-random-bean-validation |
Native Bean Validation handling in krandom-core |
Before and after
k-random:
KRandomParameters parameters = new KRandomParameters()
.seed(42L)
.randomize(FieldPredicates.named("email"), () -> "owner@example.test")
.excludeField(FieldPredicates.named("password"));
User user = new KRandom(parameters).nextObject(User.class);
kRandom:
GeneratorConfig config = GeneratorConfig.builder()
.seed(42L)
.objectOverride(User.class, "email", () -> "owner@example.test")
.objectExcludeField("password")
.build();
User user = Generators.ofObject(User.class, config).generate();
An override may repeat its value on every object. To
request a unique field, add
objectUniqueField("email"), and the constant override above then fails on a second object from the same
generator.
Domain generators
k-random faker/DataFaker randomizers map to kRandom facade methods and fluent namespaces:
String firstName = Generators.person().firstName().generate();
String email = Generators.ofEmail().generate();
String city = Generators.location().city().generate();
The complete migration guide lives in the repository at docs/migration/k-random-to-krandom.md.