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