Easy Ramdom ist ein Tool, das zufällig Java-Instanzen erstellt. Eine Art Eigenschaftsbasis-Testwerkzeug.
https://github.com/j-easy/easy-random
Die Funktion ist wie folgt
Es ist ein ideales Werkzeug für mich.
Es gibt nur eine Abhängigkeit. Auch Easy-Random-Bean-Validierung bei Verwendung von BeanValidation.
dependencies{
testCompile "org.jeasy:easy-random-core:4.0.0.RC1"
testCompile "org.jeasy:easy-random-bean-validation:4.0.0.RC1"
}
EasyRandom easyRandom = new EasyRandom()
Quantity quantity = easyRandom.nextObject(Quantity.class)
Dies allein erzeugt ein Mengenobjekt. Der Inhalt der Menge wird je nach Typ erstellt.
Seed scheint fixiert zu sein, daher gibt es im Grunde jedes Mal den gleichen Wert zurück. Daher wird empfohlen, Startwert anzugeben.
EasyRandomParameters parameters = new EasyRandomParameters().seed(System.currentTimeMillis())
EasyRandom easyRandom = new EasyRandom(parameters)
Quantity quantity = easyRandom.nextObject(Quantity.class)
Sie können die Generierungsmethode frei ändern, indem Sie einen Randomizer erstellen. Das folgende Beispiel soll im Bereich von (Rewa !?) 1 bis 1000 generiert werden.
Easy Ramdom hat auch einen eingebauten Randomizer, der Namen und Postleitzahlen zu generieren scheint. Es scheint, dass es intern ein Tool namens faker verwendet. Es scheint, dass das Gebietsschema auch angegeben werden kann, sodass japanische Namen und Adressen generiert werden können. Ich habe es noch nicht versucht. Sie müssen Easy-Random-Randomizer hinzufügen, um sie für die Verwendung abhängig zu machen.
QuantityRandmizer.java
public class QuantityRandmizer implements Randomizer<Integer>
{
@Override
public Integer getRandomValue()
{
return ThreadLocalRandom.current().nextInt(1, 1000 + 1);
}
}
EasyRandomParameters parameters = new EasyRandomParameters().seed(System.currentTimeMillis())
.randomize(FieldPredicates.named("value")
.and(FieldPredicates.ofType(Integer.class))
.and(FieldPredicates.inClass(Quantity.class)), new QuantityRandmizer())
EasyRandom easyRandom = new EasyRandom(parameters)
Quantity quantity = easyRandom.nextObject(Quantity.class)
Es kann auch im Rahmen von BeanValidation generiert werden. Im folgenden Beispiel wird es im Bereich von 100 bis 1000 generiert.
Quantity.java
public class Quantity
{
@Min(100)
@Max(1000)
Integer value;
public Quantity(Integer value)
{
this.value = value;
}
}
EasyRandomParameters parameters = new EasyRandomParameters().seed(System.currentTimeMillis())
EasyRandom easyRandom = new EasyRandom(parameters)
Quantity quantity = easyRandom.nextObject(Quantity.class)
Toll!
Recommended Posts