Essayez Easy Ramdom, un outil de test PropertyBase pour Java

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"
}

De base

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)

Changer la méthode de génération

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)

Utilisé avec Bean Validation

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

Essayez Easy Ramdom, un outil de test PropertyBase pour Java
Meilleures pratiques modernes pour les tests Java
Créer un serveur fluentd pour les tests
Essayez d'exécuter Kubernetes Job à partir de Java
Créons une application de calcul avec Java
J'ai créé un nouvel outil de déploiement Java
Une histoire sur la prise en charge de Java 11 pour les services Web
Essayez de créer un babillard en Java
Un outil pour frapper du SQL arbitraire en utilisant JDBC
[Java] Créons un Minecraft Mod 1.14.4 [Introduction]
[Java] Créons un Minecraft Mod 1.16.1 [Introduction]
Créer un outil pour l'identification des noms dans Salesforce
Une collection de questions simples pour les débutants Java
[Java] Créons un Minecraft Mod 1.14.4 [99. Mod output]
Créer un environnement de développement pour Docker, Java, vs code
Essayez de déboguer un programme Java avec VS Code
Comparez la sortie PDF en Java pour les tests d'instantanés