Migration from Faker and Chance
Migration from Faker and Chance
Use this mapping to move existing Faker/Chance-style code to kRandom.
API mapping
| Use case | Faker/Chance style | kRandom equivalent |
|---|---|---|
| Full name | faker.name().fullName() / chance.name() |
Generators.ofFullName().generate() |
faker.internet().emailAddress() / chance.email() |
Generators.ofEmail().generate() |
|
| City | faker.address().city() / chance.city() |
Generators.ofCity().generate() |
| Country | faker.address().country() / chance.country() |
Generators.ofCountry().generate() |
| Regex string | custom regex helper | new RegexGenerator(pattern).generate() |
| Object fixture | custom builder | Generators.ofObject(MyType.class).generate() |
| Deterministic runs | seeded faker/chance | GeneratorConfig.builder().seed(...).build() |
Determinism pattern
GeneratorConfig seeded = GeneratorConfig.builder()
.seed(12345L)
.locale(java.util.Locale.US)
.build();
String first = new FullNameGenerator(seeded).generate();
String second = new FullNameGenerator(seeded).generate();
Locale migration pattern
GeneratorConfig fr = GeneratorConfig.builder()
.locale(java.util.Locale.of("fr", "FR"))
.build();
String city = new CityGenerator(fr).generate();
String country = new CountryGenerator(fr).generate();
Notes
- Prefer
Generators.of*()factories for straightforward migration. - Use
GeneratorConfig.toBuilder()when deriving scenario-specific variants. - Use
DataRegistryContextwhen tests require isolated locale/provider registration.