Easy Ramdom est un outil qui crée de manière aléatoire des instances Java. Un type d'outil de test de base de propriété.
https://github.com/j-easy/easy-random
La fonctionnalité est comme ça
C'est un outil idéal pour moi.
Il n'y a qu'une seule dépendance. Également easy-random-bean-validation lors de l'utilisation de 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)
Cela seul créera un objet Quantity. Le contenu de Quantity sera fait selon le type.
La graine semble être fixe, donc fondamentalement, elle renvoie la même valeur à chaque fois. Par conséquent, il est recommandé de spécifier la graine.
EasyRandomParameters parameters = new EasyRandomParameters().seed(System.currentTimeMillis())
EasyRandom easyRandom = new EasyRandom(parameters)
Quantity quantity = easyRandom.nextObject(Quantity.class)
Vous pouvez modifier librement la méthode de génération en créant un Randomizer. L'exemple suivant est conçu pour être généré dans la plage de (Rewa!?) 1 à 1000.
Easy Ramdom a également une construction dans Randomizer, qui semble générer des noms et des codes postaux. Il semble qu'il utilise un outil appelé faker en interne. Il semble que les paramètres régionaux peuvent également être spécifiés, il semble donc que les noms et adresses japonais puissent être générés. Je n'ai pas encore essayé. Vous devez ajouter des randomiseurs aléatoires faciles à dépendre pour l'utilisation.
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)
Il peut également être généré dans le cadre de BeanValidation. Dans l'exemple ci-dessous, il sera généré dans la plage de 100 à 1000.
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)
Génial!
Recommended Posts