Probieren Sie Easy Ramdom, ein PropertyBase-Testtool für Java

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

Basic

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)

Ändern Sie die Generierungsmethode

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)

Wird mit der Bean-Validierung verwendet

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

Probieren Sie Easy Ramdom, ein PropertyBase-Testtool für Java
Moderne Best Practices für Java-Tests
Erstellen Sie einen fließenden Server zum Testen
Versuchen Sie, Kubernetes Job von Java aus auszuführen
Lassen Sie uns eine Taschenrechner-App mit Java erstellen
Ich habe ein neues Java-Bereitstellungstool erstellt
Eine Geschichte über die Java 11-Unterstützung für Webdienste
Versuchen Sie, ein Bulletin Board in Java zu erstellen
Ein Tool zum Schlagen von beliebigem SQL mit JDBC
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [Einführung]
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Einführung]
Erstellen Sie in Salesforce ein Tool zur Namensidentifizierung
Eine Sammlung einfacher Fragen für Java-Anfänger
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [99. Mod-Ausgabe]
Erstellen Sie eine Entwicklungsumgebung für Docker, Java und Code
Versuchen Sie, ein Java-Programm mit VS-Code zu debuggen
Vergleichen Sie die PDF-Ausgabe in Java für Snapshot-Tests