This is a Java library that helps generate test data
First, you add this to your pom.xml:
<dependency>
<groupId>ru.ziplla</groupId>
<artifactId>dataforge</artifactId>
<version>1.0.0</version>
</dependency>Then, you use it like this:
import ru.ziplla.dataforge.constraints.Constraints;
import ru.ziplla.dataforge.templates.Templates;
import java.util.Map;
public class App {
public static void main(String[] args) {
DataGenerator dataGenerator = new DataGenerator();
dataGenerator.addIntegerField("age", Constraints.range(1, 3));
dataGenerator.addDoubleField("salary", Constraints.rangeDouble(1, 1000, 2));
dataGenerator.addStringField("string", Constraints.length(2, 6));
dataGenerator.addTemplate("email", Templates.email());
dataGenerator.addTemplate("phone number", Templates.phoneNumber());
dataGenerator.addTemplate("name", Templates.name());
Map<String, Object> generatedData = dataGenerator.generate();
}
}You can then assign this generated data to your entities. Example:
userService.createUser(generatedData);Method addIntegerField:
If you want a number to be generated in the range you need, then you need to do this:
dataGenerator.addIntegerField("Integer", Constraints.range(1, 3));You can write the range in any order
If you want a number to be generated in any range, then you do not need to specify the range
dataGenerator.addIntegerField("Integer");Methods addLongField, addByteField, addShortField work the same as addIntegerField:
dataGenerator.addLongField("Long", Constraints.rangeLong(44L, 88L));
dataGenerator.addByteField("Byte", Constraints.rangeByte((byte) 2, (byte) 4));
dataGenerator.addShortField("Short", Constraints.rangeShort((short) 1, (short) 5));Method addDoubleField:
If you want a number to be generated in the range you need, then you need to do this:
dataGenerator.addDoubleField("Double", Constraints.rangeDouble(3, 15));You can also specify how many digits after the decimal point should be in the number
dataGenerator.addDoubleField("Double", Constraints.rangeDouble(3, 15, 5));Method addFloatField work as same as addDoubleField:
dataGenerator.addFloatField("Float", Constraints.rangeFloat(4, 75, 2));Method addStringField generate a random string in a given range:
dataGenerator.addStringField("String", Constraints.lengthString(2, 6));You can also specify in which language to generate the string (Russian, English) (if you do not do this, the default string will be in English)
dataGenerator.addStringField("string", Constraints.lengthString(6, 2, Language.ru));
dataGenerator.addStringField("string", Constraints.lengthString(6, 2, Language.en));You can also generate phone numbers, emails, names
For this use method addTemplate:
dataGenerator.addTemplate("email", Templates.email());
dataGenerator.addTemplate("phone number", Templates.phoneNumber());
dataGenerator.addTemplate("name", Templates.name());Fork repository, make changes, send us a
pull request.
We will review your changes and apply them to the master branch. To avoid frustration,
before sending us your pull request please run full Maven build