TGViewer
Грамота от Кузьмича Грамота от Кузьмича @java_ot_kuzmicha · 208 subscribers
Post #32 314
“Инстанцио!” - быстро выкрикнул Гарри Поттер, взмахнув палочкой и добавив в pom.xml новую зависимость.💫

В нашем арсенале волшебника разработчика должно быть достаточно заклинаний библиотек, что бы разрабатывать быстро и не изобретать велосипеды. Добавим себе в копилку еще одну.

Instancio - библиотека про генерацию тестовых данных. https://github.com/instancio/instancio

“Но а как же Faker?” - спросите вы. А я поясню.
Faker (com.github.javafaker) в первую очередь генерирует отдельное атомарное значение, кусочек данных. Телефонный номер, email-адрес, строку ФИО, GPS-координату.
Instancio - предназначен для создания сложных структур данных, т.е. объектов с полями, с уровнями вложенности.

Просто для сравнения - как бы мы генерировали объект класса Person(firstName, lastName, age, phoneNumber) со случайными значениями полей с использованием faker и с использованием instancio:

🔴Faker

Faker faker = Faker.instance();

Person person = new Person();
person.setFirstName(faker.name().firstName());
person.setLastName(faker.name().lastName());
person.setAge(faker.number().randomDigit());
person.setPhoneNumber(faker.phoneNumber().phoneNumber());

🔵Instancio
Person person = Instancio.create(Person.class);


Конечно не обойдется без нюансов. По умолчанию Instancio будет заполнять поля объекта полностью рандомными данными, в то время как с Faker мы будем получать данные, более похожие на реальные, живые. Для примера - как будут выглядеть объекты Person, сгенерированные двумя способами выше:

Person{firstName='Haydee', lastName='Kertzmann', age=4, phoneNumber='067.506.7057'} //для faker
Person{firstName='HRDYGWQP', lastName='UYEOXLEO', age=8229, phoneNumber='BBCCSDU'} //для instancio

Но каждому инструменту - свое применение. Резюмирая: Faker - про генерацию фейковых данных (но реалистично выглядящих). Instancio - про создание объектов, с полями, забитыми случайными данными (что может быть более актуально в unit-тестировании).

Саму зависимость Instancio можно найти здесь: https://mvnrepository.com/artifact/org.instancio/instancio
Дополнительно почитать про возможности и настройку библиотеки - тут: https://www.instancio.org/user-guide/#creating-objects (боже храни людей которые пишут документацию).
  • 👍 6
  • 🔥 3
  • ❤ 1
More from @java_ot_kuzmicha
  1. Jul 28, 2026Добавляю краски в музыку🟥🟨🟦🟧🟩 Пришла мне тут шальная мысль - что если каждый альбом к…
  2. Dec 10, 2025Более жизовые итоги чем эти ваши я.музыка или спотифаи. Кстати, че бы еще вы добавили в та…
  3. Nov 24, 2025уже пора?🤔 тренды все-таки
  4. Nov 19, 20253 из 25 - это не про лото и не про биатлон. Для тех кто пропустил релиз Java 25 - смотрим…
  5. Nov 1, 2025в рабочую субботу законодательно запрещены посты на серьезные темы. поэтому вот вам веселы…
  6. Oct 9, 2025Достал такое из почтового ящика. Скажите, кто вызывал таких мастеров - а с деплоем в прод…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →