Creare dati fake in Java con Instancio
Instancio è un'ottima libreria per Java che ci permette di valorizzare gli oggetti con dati random, in modo da poter testare le nostre applicazioni senza avere dati reali.
Rispetto ad altre librerie è meno facile da usare, ma ci molte possibilità.
Se usate Maven aggiungete questa dipendenza:
<dependency>
<groupId>org.instancio</groupId>
<artifactId>instancio-core</artifactId>
<version>2.6.0</version>
</dependency>
Prima di tutto dobbiamo creare i nostri oggetti; questo è quello che ho usato io:
import java.util.List;
public class Libro {
private int id;
private String titolo;
private double prezzo;
private List<String> categorie;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitolo() {
return titolo;
}
public void setTitolo(String titolo) {
this.titolo = titolo;
}
public double getPrezzo() {
return prezzo;
}
public void setPrezzo(double prezzo) {
this.prezzo = prezzo;
}
public List<String> getCategorie() {
return categorie;
}
public void setCategorie(List<String> categorie) {
this.categorie = categorie;
}
}
Qui sotto un esempio di codice:
import org.instancio.Instancio;
import java.util.List;
import static org.instancio.Select.field;
public class Main {
public static void main(String[] args) {
List<Libro> list = Instancio.ofList(Libro.class).size(5).create();
for (Libro libro : list) {
System.out.println(libro.getId() + " - " + libro.getTitolo() + " - " + libro.getPrezzo());
}
System.out.println("---------");
Libro libro = Instancio.of(Libro.class)
.generate(field("prezzo"), gen -> gen.doubles().range(10.0, 20.5))
.generate(field("categorie"), gen -> gen.collection().minSize(5).subtype(List.class))
.create();
System.out.println(libro.getPrezzo());
System.out.println(libro.getCategorie());
}
}
Nella prima parte creiamo una lista, indicando quanti elementi creare.
Nella seconda parte creiamo un solo oggetto, ma impostando alcune customizzazione agli elementi:
- diciamo che il prezzo deve essere un determinato range
- diciamo che le categorie devono essere almeno 5
Enjoy!
java maven instancio
Commentami!