Думаю каждый разработчик хотя бы раз в жизни встречает библиотеку, принцип работы которой сопоставим с волшебным чёрным ящиком.



Для кого-то это может быть AutoMapper, для кого-то - MediatR, для кого-то ещё - что-то третье)



В моём случае - это библиотека AutoFixture.

Этот инструмент предназначен для автоматизации создания тестовых данных, да и вообще любых данных, согласно их типу.



То есть, если есть dto класс с 172817837 полями, то вызов конструктора можно поручить AutoFixture, вместо того, чтобы все значения прописывать самому руками.



Однако, понять как эта магия работает под капотом, удалось совсем недавно.

В этом мне помог блог создателя библиотеки, Марка Симана.

Он там пишет очень понятным языком о разных аспектах своего детища, что даёт возможность сложить пазл в голове и получить цельную картину.



Поделитесь в комментариях, какие библиотеки вызывали трудности у вас