
Комментарии 7
Лови тролля! А если серьезно, то за поздравления спасибо, но мне, к сожалению Вас, в ответ, поздравить не с чем: Вы не поленились написать едкий комментарий, но поленились разобраться чем mock'ирование обектов в целях тестирования отличается от функционального PB-тестирования; forger не имеет никакого отношения к PBT (подразумевающего автоматические проверки предикатов), а направлен совершенно в другую сторону - создание объектов по контракту.
P.S. Но за комментарий спасибо, учту, что стоит подсвечивать более явно.
Во-первых, давайте спустимся с философских небес на землю и приведем пример создания объекта в рамках typescript-приложения. Далеко ходить не будем и возьмем мой же пример:
interface User {
id: number;
name: string;
isActive: boolean;
}
const user = Forger.create<User>();Можно ли пример того, как тот же fast-check из "десятка существующих" создаст поддельный объект в соответствии с описанием класса/интерфейса? Получится ли у нас это сделать в одну строчку, как в моем примере, или необходимо полностью описать модель объекта отдельным, по сути, классом, с параметризированием каждого поля?
В таком случае, я скорее переизобрел (хотя вообще не считаю, что изобрёл что-то) AutoFixture из C# под typescript, или эта библиотека с Вашей точки зрения тоже никчемная поделка из миллиона?
Идея же о том, что Mock - это исключительно про поведение, а не про данные... Ну ок, как вы охарактеризуете тот же AutoFixture? Мы подделываем именно данные согласно интерфейсу (читай контракту), это не подделка? Как это называется в Вашем словаре?
А вот теперь мы переходим к реальному конфликту подходов, без подколов "кто, что изобрел") И я, к сожалению, не могу согласиться с Вашим подходом в контексте обсуждения.
По факту, я вижу у Вас оценку библиотеки, направленной на unit-тестирование, через призму PBT. С "высоты" своего десятилетнего опыта, могу заметить, что, в рамках unit-тестов, мне прям очень важно быстрое создание рандомных объектов, которые я могу тюнить под конкретный тест. Вы считаете, что такой подход - not true? Может быть, но библиотека в том не виновата, она вообще не про PBT, и не способна следовать за вашими суждениями.
Как быстро создавать тестовые данные без лишней рутины: библиотека @artstesh/forger